网络状态

Taro.getNetworkType(OBJECT)

获取网络类型,支持 Promise 化使用。

OBJECT 参数说明:

参数 类型 必填 说明
success Function 接口调用成功的回调函数,返回网络类型 networkType
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

success 返回参数说明:

参数 说明
networkType 网络类型

networkType 有效值:

参数 说明
wifi wifi 网络
2g 2g 网络
3g 3g 网络
4g 4g 网络
none 无网络
unknow Android 下不常见的网络类型

注意:

H5 下此 API 兼容性较差,详见 Can I use。并且标准不一,对于三种规范分别支持的 networkType 有效值如下。

  • 仅支持不符合规范的 navigator.connetion.type,详情。networkType 有效值为:’wifi’、’3g’、’2g’、’unknown’。
  • 支持 navigator.connetion.type。networkType 有效值为:’cellular’、’wifi’、’none’。
  • 支持 navigator.connetion.effectiveType。networkType 有效值为:’slow-2g’、’2g’、’3g’、’4g’。

示例代码:

  1. import Taro from '@tarojs/taro'
  2. Taro.getNetworkType({
  3. success: res => console.log(res.networkType)
  4. })
  5. .then(res => console.log(res.networkType))

Taro.onNetworkStatusChange(CALLBACK)

监听网络状态变化。

CALLBACK 返回参数:

参数 类型 说明
isConnected Boolean 当前是否有网络连接
networkType String 网络类型

注意:H5 端兼容情况较差,只有当 navigator.connection 支持监听 onChange 事件时才会生效。

示例代码:

  1. import Taro from '@tarojs/taro'
  2. Taro.onNetworkStatusChange(res => {
  3. console.log(res.isConnected)
  4. console.log(res.networkType)
  5. })

API 支持度

API 微信小程序 H5 ReactNative
Taro.getNetworkType ✔️ ✔️ ✔️
Taro.onNetworkStatusChange ✔️ ✔️ ✔️