鸿蒙开发:14-弱网监听

392 阅读1分钟

弱网监听

鸿蒙网络管理模块提供了网络质量评估网络场景识别应用传输体验反馈弱网感知判决连接迁移等能力,使我们应用可以感知、预判网络状况,以便在网络不佳时采取相应的策略(如启用缓存、网络连接迁移等)。

弱网感知判决-网络质量-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

image.png

image.png