フラッター コントロール 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();
});