x-networkstatus-s 网络状态
网络类型、弱网变化、局域网 IP。函数与类型均加 x 前缀,避免与官方同名冲突。一次性 API 使用 DCloud success / fail / complete。
兼容性
| Harmony | iOS | Android | WEB | 微信小程序 |
|---|---|---|---|---|
| 支持 | 支持 | 支持 | 部分支持 | 支持 |
Web 端 xGetLocalIPAddress 因浏览器限制返回 fail 1008。弱网在 App / Web 为近似判断,微信端走官方弱网能力。
调用
ts
import {
xGetNetworkType,
xGetLocalIPAddress,
xOnNetworkStatusChange,
xOffNetworkStatusChange,
xOnNetworkWeakChange,
xOffNetworkWeakChange,
XGetNetworkTypeOptions,
XGetLocalIPAddressOptions
} from "@/uni_modules/x-networkstatus-s"
xGetNetworkType({
success: (res) => {
console.log(res.networkType, res.weakNet, res.signalStrength)
}
} as XGetNetworkTypeOptions)
xGetLocalIPAddress({
success: (res) => {
console.log(res.localip, res.netmask)
}
} as XGetLocalIPAddressOptions)
const statusId = xOnNetworkStatusChange((res) => {
console.log(res.isConnected, res.networkType)
})
const weakId = xOnNetworkWeakChange((res) => {
console.log(res.weakNet, res.networkType)
})
xOffNetworkStatusChange(statusId)
xOffNetworkWeakChange(weakId)方法
| 名称 | 说明 |
|---|---|
| xGetNetworkType | 获取当前网络类型与弱网/代理信息 |
| xGetLocalIPAddress | 获取局域网 IP 与子网掩码 |
| xOnNetworkStatusChange | 监听联网状态与类型变化,返回监听 id |
| xOffNetworkStatusChange | 移除状态监听;不传 id 则移除本插件全部状态监听 |
| xOnNetworkWeakChange | 监听弱网变化,返回监听 id |
| xOffNetworkWeakChange | 移除弱网监听;不传 id 则移除本插件全部弱网监听 |
网络类型
wifi / 2g / 3g / 4g / 5g / unknown / none
XGetNetworkTypeResult 固定包含 signalStrength(dbm,未知为 0)、hasSystemProxy、weakNet。
错误码:1001 系统错误,1002 参数错误,1003 无法获取局域网 IP,1008 当前平台不支持。
平台差异
Android
ConnectivityManager+NetworkCallback。- 蜂窝制式优先
TelephonyManager,失败时按下行带宽近似。 - 局域网 IP 走
NetworkInterface,优先 Wi-Fi。 - 需
ACCESS_NETWORK_STATE、ACCESS_WIFI_STATE。
iOS
NWPathMonitor监听路径;蜂窝制式走CTTelephonyNetworkInfo。- 弱网:
isConstrained或2g。 - 局域网 IP 走
getifaddrs,优先en0。
HarmonyOS
@kit.NetworkKit的createNetConnection+getNetCapabilities。- 蜂窝制式走
@kit.TelephonyKit的radio.getSignalInformation。 - Wi-Fi IP 走
wifiManager.getIpInfo,失败再读连接属性。 - 需
ohos.permission.GET_NETWORK_INFO、ohos.permission.GET_WIFI_INFO。宿主entry/module.json5也应声明。
Web
- 在线状态走
navigator.onLine与window的online/offline。 - 网络类型走
navigator.connection(含mozConnection/webkitConnection):优先type(wifi/ethernet/cellular),蜂窝再映射effectiveType。 - Safari 等未实现 Network Information API 的浏览器:在线为
unknown,离线为none;状态变化仍可监听。 effectiveType表示估算速率,Wi-Fi 上也可能是4g。- 不支持读取局域网 IP(
fail 1008)。
微信小程序
- 直接转发
wx.getNetworkType、wx.getLocalIPAddress、wx.onNetworkStatusChange、wx.offNetworkStatusChange、wx.onNetworkWeakChange、wx.offNetworkWeakChange。
版本
版权归 https://xui.tmui.design 你不得修改及二次开发,仅供 TMUI4 会员商用使用。不得转给非 VIP 会员使用,一经查实数倍赔偿,并追究法律责任。
更新日志
1.0.1(2026-08-17)
- 修复 Web 端
navigator.get is not a function:改为读取navigator.connection属性,不再把navigator当UTSJSONObject。 - 修复 Web 端首次
online/offline/connection.change被基线逻辑吞掉。
1.0.0(2026-08-16)
- 新增 x-networkstatus-s:xOnNetworkStatusChange、xOffNetworkStatusChange、xOnNetworkWeakChange、xOffNetworkWeakChange、xGetNetworkType、xGetLocalIPAddress。
