在 WebView 中获取当前网络状态(Wi-Fi 3G 4G)
16lz
2021-01-26
原生的 WebView,无论是 iOS 或是 Android 都没有直接提供网络信息的 API,于是,我们需要使用 LEGO-SDK 辅助获取。
原生应用准备工作
iOS
使用 CocoaPods,在 Podfile 中添加以下依赖, 再执行 pod update
即可。
pod 'LEGO-SDK/Core'pod 'LEGO-SDK/AutoInject'pod 'LEGO-SDK/API/Native/Device'
Android
使用 Gradle,在 gradle 文件中添加以下依赖, Sync 即可。
compile 'com.github.LEGO-SDK.LEGO-SDK-Android:core:0.3.0'compile 'com.github.LEGO-SDK.LEGO-SDK-Android:mod_native_device:0.3.0'
你还需要在 build.gradle 文件中添加 JitPack 仓库
allprojects { repositories { jcenter() maven { url "https://jitpack.io" } }}
在 WebView 加载网页前执行下面的代码
LGORuntime.attach(webView);
Web 调用
在原生应用集成对应 API 后,Web 应用就拥有 Native API 能力了,使用以下的方式获得网络状态。
window.JSBridge && eval(window.JSBridge.bridgeScript());JSMessage.newMessage("Native.Device").call(function(meta, result) { if (meta.error){ return console.error(error); } if (result.network.usingWIFI) { // 正在使用 Wi-Fi 网络 } else if (result.network.cellularType == 4) { // 正在使用 4G 网络 } else if (result.network.cellularType == 3) { // 正在使用 3G 网络 } else if (result.network.cellularType == 2) { // 正在使用 2G 网络 } else if (result.network.cellularType == 0) { // 无网络 }})
更多的 LEGO-SDK 集成、使用以及文档信息,请进入 https://lego-sdk.github.io/index.html。
更多相关文章
- Android本地APP集成Mui框架
- cocos2dx实现获得设备的网络连接状态
- Android程序检测网络是否可用
- Android访问网络,HttpURLConnection还是HttpClient?
- Android(安卓)Studio一个连接SQLite数据库的登录注册实现
- Android(安卓)Jetpack重磅升级!新的类库以及现有类库重大更新!
- android 应用的网络请求工具
- Android开发之获取网络类型(WIFI、2G、3G、4G)和运营商名称
- Android设置透明状态栏,仿ios状态栏