upNetworkModule 网络模块
模块概述
网络模块为H5页面提供当前连接的网络信息。
方法列表
- isOnline (获取是否联网)
- isOnlinePing (获取网络是否可用)
- getNetworkInfo(获取当前连接的网络信息)
- addNetStateEventListener(注册网络变化监听)
- removeNetStateEventListener(移除网络变化监听)
公共数据
- 所有数据均以JSON结构返回,由代码,信息和数据三部分组成
{ "retCode": "000000", //接口状态标识码 "retInfo": "操作成功",//接口信息说明 "retData": null //业务数据 }
具体定义:返回数据通用
模块变更记录
- V3.0.0 封装isOnline,getNetworkInfo接口返回数据
- V3.2.0
- 网络模块未定义的retCode编码按照通用数据规定变为990001,'获取当前连接的网络信息失败'使用通用retCode为000001
- 增加addNetStateEventListener和removeNetStateEventListener接口
- V4.0.0
- 重构network模块,修改retInfo
- 增加isOnlinePing方法,注意:ping地址需要时间,可能几秒或者几十秒后才返回结果
方法说明
isOnline (获取是否联网)
isOnline()
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
无
错误返回 retCode说明:
retCode编码 | retInfo说明 |
---|---|
使用通用retCode
正确返回 retData说明:
属性名 | 数据类型 | 说明 |
---|---|---|
isOnline | Boolean | 是否联网。如果当前终端连接的路由器无法正常连网的话,该字段仍然返回true |
示例
调用方式
uplusapi.upNetworkModule.isOnline().then((result) =>console.log('result',result));
获取成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数isOnlineForNetwork成功",
"retData": {
"isOnline": true,
}
}
isOnlinePing (获取网络是否可用)
isOnlinePing()
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 7.10.0 及以上 |
params 输入参数:
无
错误返回 retCode说明:
retCode编码 | retInfo说明 |
---|---|
使用通用retCode
正确返回 retData说明:
属性名 | 数据类型 | 说明 |
---|---|---|
isOnlinePing | Boolean | 网络是否可用,智家及百度地址有任何一个可以ping通即返回true,否则返回false |
示例
调用方式
uplusapi.upNetworkModule.isOnlinePing().then((result) =>console.log('result',result));
获取成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数isOnlinePingForNetwork成功",
"retData": {
"isOnlinePing": true,
}
}
getNetworkInfo (获取当前连接的网络信息)
getNetworkInfo()
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
无
错误返回 retCode说明:
retCode编码 | retInfo说明 |
---|---|
使用通用retCode
正确返回 retData说明:
属性名 | 数据类型 | 说明 |
---|---|---|
type | String | 网络类型,cell:蜂窝网络,WiFi:WiFi网络 |
ip | String | 以十进制格式化的IPv4网络地址,暂不支持IPv6 |
cellType | String | 蜂窝网络类型,此属性只在type=cell时有值,值为common-普通网络,2G-2G网络,3G-3G网络,4G-4G网络,5G-5G网络 |
mac | String | 网络设备物理地址,当type=1时有值,值为十六进制以冒号分割个字符串 |
ssid | String | WiFi网络名称,当type=1时有值,值为Unicode字符串 |
注意:Android端使用该接口时需要使用者在app的AndroidManifest文件中声明android:name="android.permission.ACCESS_FINE_LOCATION",并且在设置中打开定位权限,否则获取不到ssid, 获取cellType信息需要在设置中打开获取手机信息的权限。 android6及以后版本系统将无法通过系统的方法获取到mac,目前使用的网上提供的非官方方法,一旦方法发生变动,将有可能获取不到mac。 Android10及以上版本由于Google禁止获取mac地址等设备唯一标识符,所以获取到的mac地址可能为空字符串或null
示例
调用方式
uplusapi.upNetworkModule.getNetworkInfo().then((result) =>console.log('result',result));
获取成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数getNetworkInfoForNetwork成功",
"retData": {
"type": "WiFi",
"ip": "192.168.1.101",
"cellType":"",
"mac":"44:97:5a:13:3a:48",
"ssid":"TP-link"
}
}
获取失败返回结果
{
"retCode": "000001",
"retInfo": "调用函数getNetworkInfoForNetwork失败,errMsg:获取当前连接的网络信息失败",
"retData": "",
}
addNetStateEventListener(监听网络变化)
addNetStateEventListener()
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
属性名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
ret | Function | 是 | 网络变化监听器 |
key | string | 是 | 网络监听器key值 |
正确返回说明:
获取成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数addNetStateEventListenerForNetwork成功",
}
retInfo:第一次调用返回"调用函数addNetStateEventListenerForNetwork成功",重复调用返回"添加NetworkChange监听器成功"
网络监听回调,ret监听器数据说明:
属性名 | 数据类型 | 说明 |
---|---|---|
retCode | String | 通用返回码 |
retInfo | String | 网络已连接/网络已断开 |
retData | String | 当前状态,online:网络连接,offline:网络断开 |
示例
调用方式
uplusapi.upNetworkModule.addNetStateEventListener((ret) =>console.log('result',ret),'itsFirst');
获取成功返回结果
{
"retCode": "000000",
"retInfo": "网络已连接",
"retData":"online",
}
removeNetStateEventListener(移除网络监听)
removeNetStateEventListener()
适用性
容器 | Nebula |
---|---|
支持情况 | 是 |
APP版本 | 6.12.0 及以上 |
params 输入参数:
属性名 | 类型 | 是否必填 | 描述 |
---|---|---|---|
key | string | 是 | 网络监听器key值 |
正确返回说明:
成功返回结果
{
"retCode": "000000",
"retInfo": "调用函数removeNetStateEventListenerForNetwork成功",//或者"移除NetworkChanged监听器成功",前者为最后一个监听者移除监听时返回,后者为非最后一个监听者移除监听时返回。
}
失败返回结果
{
"retCode": "000001",
"retInfo": "移除NetworkChanged监听器失败,监听器不存在",
}
示例
调用方式
uplusapi.upNetworkModule.removeNetStateEventListener('itsFirst');