弱网监听
鸿蒙网络管理模块提供了网络质量评估、网络场景识别、应用传输体验反馈、弱网感知判决、连接迁移等能力,使我们应用可以感知、预判网络状况,以便在网络不佳时采取相应的策略(如启用缓存、网络连接迁移等)。
弱网感知判决-网络质量-Network Boost Kit(网络加速服务)-网络-系统 - 华为HarmonyOS开发者
网络管理与状态监听开发实践-网络开发实践-系统开发-功能开发-最佳实践 - 华为HarmonyOS开发者
可以将 网络场景识别netSceneChange和网络质量netQosChange综合订阅来进行综合判别。
根据网络情况,可以进行启用缓存、网络连接迁移等操作。
连接迁移-Network Boost Kit(网络加速服务)-网络-系统 - 华为HarmonyOS开发者
简单示例:
import { netQuality } from '@kit.NetworkBoostKit';
import { promptAction } from '@kit.ArkUI';
import { BusinessError } from '@kit.BasicServicesKit';
export class WeakNetSubScribe {
//订阅弱网情况
static onNetSceneChange() {
try {
netQuality.on('netSceneChange', (networkScene: Array<netQuality.NetworkScene>) => {
if (networkScene.length > 0) {
networkScene.forEach((networkSceneItem) => {
if (networkSceneItem.scene === 'weakSignal' || networkSceneItem?.weakSignalPrediction) {
promptAction.showToast({ message: '网络状况不佳,请耐心等待', duration: 1500 });
}
})
}
})
} catch (err) {
let error: BusinessError = err as BusinessError;
console.error(`onNetSceneChange fail, ${JSON.stringify(error)}.`);
}
}
//取消订阅弱网情况
static offNetSceneChange() {
try {
netQuality.off('netSceneChange', () => {
console.info(`offNetSceneChange success.`);
})
} catch (err) {
let error: BusinessError = err as BusinessError;
console.error(`offNetSceneChange fail, ${JSON.stringify(error)}.`);
}
}
}
官网demo: HarmonyOS_Samples/Network Boost kit-SampleCode-ArkTS