原生的 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。

更多相关文章

  1. Android本地APP集成Mui框架
  2. cocos2dx实现获得设备的网络连接状态
  3. Android程序检测网络是否可用
  4. Android访问网络,HttpURLConnection还是HttpClient?
  5. Android(安卓)Studio一个连接SQLite数据库的登录注册实现
  6. Android(安卓)Jetpack重磅升级!新的类库以及现有类库重大更新!
  7. android 应用的网络请求工具
  8. Android开发之获取网络类型(WIFI、2G、3G、4G)和运营商名称
  9. Android设置透明状态栏,仿ios状态栏

随机推荐

  1. android 日常 (十六)
  2. 【Android】Broadcast控制音乐暂停继续等
  3. android之AnimationDrawable
  4. 我的第一个Android(安卓)多媒体的Demo
  5. Android中RelativeLayout各个属性的含义
  6. Android系统源码基础知识讲解
  7. Android消息提示框Toast
  8. Android进程与线程基本知识
  9. android的测试工具CTS
  10. android的测试工具CTS