Skip to content

x-networkstatus-s 网络状态

网络类型、弱网变化、局域网 IP。函数与类型均加 x 前缀,避免与官方同名冲突。一次性 API 使用 DCloud success / fail / complete

兼容性

HarmonyiOSAndroidWEB微信小程序
支持支持支持部分支持支持

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)、hasSystemProxyweakNet

错误码:1001 系统错误,1002 参数错误,1003 无法获取局域网 IP,1008 当前平台不支持。

平台差异

Android

  • ConnectivityManager + NetworkCallback
  • 蜂窝制式优先 TelephonyManager,失败时按下行带宽近似。
  • 局域网 IP 走 NetworkInterface,优先 Wi-Fi。
  • ACCESS_NETWORK_STATEACCESS_WIFI_STATE

iOS

  • NWPathMonitor 监听路径;蜂窝制式走 CTTelephonyNetworkInfo
  • 弱网:isConstrained2g
  • 局域网 IP 走 getifaddrs,优先 en0

HarmonyOS

  • @kit.NetworkKitcreateNetConnection + getNetCapabilities
  • 蜂窝制式走 @kit.TelephonyKitradio.getSignalInformation
  • Wi-Fi IP 走 wifiManager.getIpInfo,失败再读连接属性。
  • ohos.permission.GET_NETWORK_INFOohos.permission.GET_WIFI_INFO。宿主 entry/module.json5 也应声明。

Web

  • 在线状态走 navigator.onLinewindowonline / offline
  • 网络类型走 navigator.connection(含 mozConnection / webkitConnection):优先 typewifi / ethernet / cellular),蜂窝再映射 effectiveType
  • Safari 等未实现 Network Information API 的浏览器:在线为 unknown,离线为 none;状态变化仍可监听。
  • effectiveType 表示估算速率,Wi-Fi 上也可能是 4g
  • 不支持读取局域网 IP(fail 1008)。

微信小程序

  • 直接转发 wx.getNetworkTypewx.getLocalIPAddresswx.onNetworkStatusChangewx.offNetworkStatusChangewx.onNetworkWeakChangewx.offNetworkWeakChange

版本

版权归 https://xui.tmui.design 你不得修改及二次开发,仅供 TMUI4 会员商用使用。不得转给非 VIP 会员使用,一经查实数倍赔偿,并追究法律责任。

更新日志

1.0.1(2026-08-17)

  • 修复 Web 端 navigator.get is not a function:改为读取 navigator.connection 属性,不再把 navigatorUTSJSONObject
  • 修复 Web 端首次 online / offline / connection.change 被基线逻辑吞掉。

1.0.0(2026-08-16)

  • 新增 x-networkstatus-s:xOnNetworkStatusChange、xOffNetworkStatusChange、xOnNetworkWeakChange、xOffNetworkWeakChange、xGetNetworkType、xGetLocalIPAddress。
最近更新