最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Flutter檢查連接網(wǎng)絡(luò)connectivity_plus實(shí)現(xiàn)步驟

 更新時(shí)間:2023年06月27日 10:02:41   作者:會(huì)煮咖啡的貓  
這篇文章主要為大家介紹了Flutter檢查連接網(wǎng)絡(luò)connectivity_plus實(shí)現(xiàn)步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

有些對(duì)通訊敏感的程序,我們需要檢查當(dāng)前連接的網(wǎng)絡(luò)情況。

我推薦使用 connectivity_plus

https://pub-web.flutter-io.cn/packages/connectivity_plus

這個(gè)插件的好處就是支持全平臺(tái),這點(diǎn)非常好。

我們今天來(lái)寫(xiě)一個(gè)例子嘗試下這個(gè)功能。

這個(gè)插件遇到獲取狀態(tài)不對(duì),請(qǐng)用真機(jī)調(diào)試,模擬器可能有偏差。

步驟

第一步:配置依賴(lài)包

pubspec.yaml

dependencies:
  flutter:
    sdk: flutter
  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  cupertino_icons: ^1.0.2
  connectivity_plus: ^4.0.1

第二步:修改 android 最小編譯版本

android/app/build.gradle

改成·minSdkVersion 19

android {
    ...
    defaultConfig {
        applicationId "com.example.flutter_application_connectivity"
        minSdkVersion 19 //flutter.minSdkVersion
          targetSdkVersion flutter.targetSdkVersion
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
    }

第三步:檢查網(wǎng)路連接代碼

lib/connectivity.dart

定義 Connectivity 對(duì)象

class _ConnectivityPageState extends State<ConnectivityPage> {
  // Connectivity 對(duì)象
  final Connectivity _connectivity = Connectivity();

消息訂閱 StreamSubscription

// 消息訂閱
  late StreamSubscription<ConnectivityResult> _subscription;

返回狀態(tài)保存

// 初始返回的網(wǎng)絡(luò)狀態(tài)
  ConnectivityResult? _connectivityStatus;

初始化,單次檢查方式

// 初始化
  Future<void> _init() async {
    try {
      // 方式1:?jiǎn)未握?qǐng)求檢查
      final connectivityResult = await _connectivity.checkConnectivity();
      _updateConnectionStatus(connectivityResult);
    } on PlatformException catch (e) {
      print(e);
      print('連接網(wǎng)絡(luò)出現(xiàn)了異常');
    }
  }

訂閱方式

// 初始化
  Future<void> _init() async {
    try {
      // 方式1:?jiǎn)未握?qǐng)求檢查
      // final connectivityResult = await _connectivity.checkConnectivity();
      // _updateConnectionStatus(connectivityResult);
      // 方式2:狀態(tài)訂閱
      _subscription =
          _connectivity.onConnectivityChanged.listen(_updateConnectionStatus);
    } on PlatformException catch (e) {
      print(e);
      print('連接網(wǎng)絡(luò)出現(xiàn)了異常');
    }
  }

更新訂閱狀態(tài)

Future<void> _updateConnectionStatus(ConnectivityResult result) async {
    setState(() {
      _connectivityStatus = result;
    });
    if (result == ConnectivityResult.mobile) {
      print('成功連接移動(dòng)網(wǎng)絡(luò)');
    } else if (result == ConnectivityResult.wifi) {
      print('成功連接WIFI');
    } else if (result == ConnectivityResult.ethernet) {
      print('成功連接到以太網(wǎng)');
    } else if (result == ConnectivityResult.vpn) {
      print('成功連接vpn網(wǎng)絡(luò)');
    } else if (result == ConnectivityResult.bluetooth) {
      print('成功連接藍(lán)牙');
    } else if (result == ConnectivityResult.other) {
      print('成功連接除以上以外的網(wǎng)絡(luò)');
    } else if (result == ConnectivityResult.none) {
      print('沒(méi)有連接到任何網(wǎng)絡(luò)');
    }
  }

初始 initState

@override
  void initState() {
    super.initState();
    _init();
  }

釋放 dispose,關(guān)閉訂閱

@override
  void dispose() {
    _subscription.cancel();
    super.dispose();
  }

視圖

@override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('網(wǎng)路連接檢查'),
      ),
      body: Center(
        child: Column(
          children: [
            const Text('狀態(tài)'),
            Text(_connectivityStatus?.toString() ?? "未知"),
          ],
        ),
      ),
    );
  }

代碼

小結(jié)

connectivity_plus 是一個(gè) Flutter 插件,用于檢測(cè)設(shè)備的網(wǎng)絡(luò)連接狀態(tài)。它可以檢測(cè)設(shè)備是否連接到互聯(lián)網(wǎng),以及連接類(lèi)型是 Wi-Fi、蜂窩數(shù)據(jù)還是無(wú)網(wǎng)絡(luò)連接。這個(gè)插件的作用和重要性在于:

  • 提供了一種簡(jiǎn)單、可靠的方法來(lái)檢測(cè)設(shè)備的網(wǎng)絡(luò)連接狀態(tài),方便開(kāi)發(fā)者編寫(xiě)更智能的應(yīng)用程序。
  • 讓?xiě)?yīng)用程序可以根據(jù)設(shè)備的網(wǎng)絡(luò)連接狀態(tài)來(lái)調(diào)整其行為,例如根據(jù)網(wǎng)絡(luò)狀況選擇合適的數(shù)據(jù)加載方式、調(diào)整 UI 布局等。
  • 支持多種平臺(tái),包括 Android、iOS、macOS 和 Windows,可以輕松地在不同平臺(tái)上進(jìn)行開(kāi)發(fā)和測(cè)試。

總之,connectivity_plus 插件是一個(gè)非常有用和重要的工具,可以幫助開(kāi)發(fā)者編寫(xiě)更智能、更適應(yīng)用戶(hù)需求的應(yīng)用程序。

以上就是Flutter檢查連接網(wǎng)絡(luò)connectivity_plus實(shí)現(xiàn)步驟的詳細(xì)內(nèi)容,更多關(guān)于Flutter connectivity_plus的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

响水县| 永城市| 二连浩特市| 富民县| 桃园县| 称多县| 尖扎县| 黄浦区| 田阳县| 临武县| 西华县| 云梦县| 古蔺县| 项城市| 衡阳市| 同心县| 乐陵市| 阳新县| 山西省| 兴和县| 塔河县| 射洪县| 漳浦县| 阜阳市| 库伦旗| 丰都县| 平乐县| 都安| 蓝山县| 突泉县| 工布江达县| 河池市| 新竹县| 耒阳市| 张掖市| 丁青县| 张家界市| 嘉黎县| 稷山县| 乃东县| 龙里县|