权限
ohos.permission.GET_NETWORK_INFO
connection类
当前网络是否可用
this.hasNet = connection.hasDefaultNetSync()
创建 connection.NetConnection
创建,并且注册网络监听
// 创建一个NetConnection对象
let netCon: connection.NetConnection = connection.createNetConnection();
// 注册网络监听
netCon.register((error: BusinessError) => {
if (error) {
console.error(JSON.stringify(error));
registerResult(false)
}
console.log(`网络变化 -----}`)
registerResult(true)
});
订阅网络变化,只是4g,wifi ,以太网,
没网不走这里
// 订阅网络能力变化事件。调用register后,才能接收到此事件通知
netCon.on('netCapabilitiesChange', (data: connection.NetCapabilityInfo) => {
console.info("订阅网络能力 data: " + JSON.stringify(data));
if (data.netCap.bearerTypes) {
switch (data.netCap.bearerTypes[0]) {
case connection.NetBearType.BEARER_CELLULAR:
this.setNetChange(NetType.NET_CELLULAR)
console.log('当前网络 蜂窝')
break
case connection.NetBearType.BEARER_WIFI:
this.setNetChange(NetType.NET_WIFI)
console.log('当前网络 Wifi')
break
case connection.NetBearType.BEARER_ETHERNET:
this.setNetChange(NetType.NET_ETHERNET)
console.log('当前网络 以太网网络')
case connection.NetBearType.BEARER_VPN:
this.setNetChange(NetType.NET_VPN)
console.log('当前网络 VPN')
break
}
}
});
网络丢失,无网
// 订阅网络丢失事件。调用register后,才能接收到此事件通知
netCon.on('netLost', (data: connection.NetHandle) => {
console.info("丢失事件 data: " + JSON.stringify(data));
this.setNetChange(NetType.NET_NONE)
});
// 订阅网络不可用事件。调用register后,才能接收到此事件通知
netCon.on('netUnavailable', () => {
console.info("不可用不知道这个什么时候触发事件 net event");
this.setNetChange(NetType.NET_NONE)
});