关于监测以太网网络状态变化思路
官方文档:https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/reference/apis-network-kit/js-apis-net-connection.md#onnetavailable 首先我有个以太网开关是由一个属性控制的 sys.ifconfig.eth0(自己加的)&#
·
首先我有个以太网开关是由一个属性控制的
sys.ifconfig.eth0(自己加的),up的时候是打开,down是关闭。测试的时候我是连接以太网线的状态,然后打开和关闭以太网开关测试。
//创建一个NetConnection对象
//网络类型可以在这里查看:
https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/reference/apis-network-kit/js-apis-net-connection.md#netbeartype
let netConnectionCellular = connection.createNetConnection({
netCapabilities: {
bearerTypes: [connection.NetBearType.BEARER_ETHERNET] //专注监测以太网络状态
}
})
private createNetConnection() : void{
//默认关注以太网络
netConnectionCellular.register((error : BusinessError) =>{
console.log(`'error: '${JSON.stringify(error)}`);
})
//订阅网络连接信息变化事件
netConnectionCellular.on('netConnectionPropertiesChange', (data: connection.NetConnectionPropertyInfo) => {
console.info("Succeeded to get data: " + JSON.stringify(data));
})
//订阅网络可用事件
netConnectionCellular.on('netAvailable', (data: connection.NetHandle) => {
console.info("Succeeded to get netAvailable data: " + JSON.stringify(data));
})
// 订阅网络丢失事件。调用register后,才能接收到此事件通知
netConnectionCellular.on('netLost', (data: connection.NetHandle) => {
console.info("Succeeded to get netLost data: " + JSON.stringify(data))
})
}
//取消关注以太网络3
private desoryNetConnection() : void{
netConnectionCellular.unregister((error: BusinessError) => {
console.log(JSON.stringify(error));
});
}
经测试,关闭以太网络会触发‘netLost’事件,打开以太网会触发‘netAvailable’事件,从动态配置改为静态配置以太网络信息后会触发‘netConnectionPropertiesChange’事件。然后就可以在对应事件做自己的逻辑啦
更多推荐
所有评论(0)