フラッターネットワーク監視

フラッター コントロール dart_ping を使用して、ネットワーク速度の低下またはネットワーク切断の状況を認識します。

iOS で dart_ping を使用するには、dart_ping_iosパッケージを依存関係として追加し、Ping を初期化する前に iOS プラグインを登録します。

dart_ping_ios コントロール アドレス: https://pub.dev/packages/dart_ping_ios

dart_ping コントロール アドレス: https://pub.dev/packages/dart_ping

1.プラグインをダウンロードする

1 構成ファイル pubbspec.yaml に次のコードを追加し、flutterSDK でサポートされている現在のバージョンで選択されているバージョンに注意してから、flutter pub get 同期プラグインを実行します。

dart_ping_ios: ^1.0.0
dart_ping: ^6.1.0

2. iOS コントロールdart_ping_iosを登録する

iOS デバイスをサポートする必要がない場合は、この手順をスキップしてください

dart_ping の初期化の前に必ず登録してください。

      //在dart_ping初始化前添加此行代码
      DartPingIOS.register();

3. dart_pingを使用する

     /*1.初始化*/
     final ping = Ping(
     /*必传参数*/
     'baidu.com',//参数1:host
     /*可选参数*/
      count: 50,//参数2:需要ping的次数,默认无限次
      interval: 1,//参数3:每几秒ping一次,默认1次
      );
      //timeout: 2,//参数4:几秒超时,默认2秒
      //ttl: 255,//参数5:可ping的路由器数量,默认255个
      //ipv6: false,//参数6:是否ipv6,默认false
      //PingParser? parser,//参数7:解析器,默认不传
      //Encoding encoding = const Utf8Codec(),//参数7:编码,默认Utf8
      
      /*2.开始监测网络延迟状态*/
     ping.stream.listen((event) {
     debugPrint('输出监测到的网络状态信息===========$event');
     //输出数据内容-->网络正常
     //PingResponse(seq:1,ttl:54,time:38.112 ms)
     //seq已经ping的次数
     //ttl路由器数量
     //time延迟的毫秒数
     //输出数据内容-->网络较差或网络断开
     //PingResonse(response:PingResponse(seq:1),error:RequestTimedOut)
     if (event.error != null) {
         print("网络较差或网络断开")
      }
      
      /*3.停止监听*/
      //建议在app销毁时停止ping进程
      //ping.stop();
    });

おすすめ

転載: blog.csdn.net/weixin_48235660/article/details/128853808