Flutter 常用第三方

开源网站:

https://pub-web.flutter-io.cn/packages?q=

常用三方:

  网络请求
  dio: ^5.4.0 


  极光推送ANDROID IOS
  jpush_flutter: ^2.5.0

  轻量型持久化 key-value形式 ANDROID IOS LINUX MACOS WEB WINDOWS
  shared_preferences: ^2.0.15

sqlite ANDROID IOS LINUX MACOS WEB WINDOWS
  使用此包编译的sqlite3版本使用建议的编译时选项。此外,它默认提供fts5模块
  sqlite3_flutter_libs: ^0.5.12
重型数据库 基于SQLite 依赖sqlite3_flutter_libs
sqflite_common_ffi: ^2.2.0+1

数据库 ANDROID IOS LINUX MACOS WEB WINDOWS
hive: ^2.2.3
hive_flutter依赖 hive: ^2.0.4 path_provider: ^2.0.2 path: ^1.8.0
hive_flutter: ^1.1.0
数据库hive的查看 ANDROID IOS LINUX MACOS WEB WINDOWS
hive_ui: ^1.0.14
文件路径管理
path_provider: ^2.0.15

工具库ANDROID IOS LINUX MACOS WEB WINDOWS
common_utils: ^2.1.0

屏幕唤醒锁定 ANDROID IOS LINUX MACOS WEB WINDOWS
wakelock: ^0.6.2

网络状态检查 ANDROID IOS LINUX MACOS WEB WINDOWS
connectivity_plus: ^4.0.1
状态管理 ANDROID IOS LINUX MACOS WEB WINDOWS
provider: ^6.0.4

   10.0.0传参大改,暂时降到9.1.1
  go_router: ^9.1.1

  查看大图ANDROID IOS LINUX MACOS WEB WINDOWS
  photo_view: 0.14.0
加载网络图片ANDROID IOS LINUX MACOS WEB WINDOWS
extended_image: ^8.2.0

调用系统拨打电话,发送短信等。ANDROID IOS LINUX MACOS WEB WINDOWS
url_launcher: ^6.2.3
时间选择器ANDROID IOS LINUX MACOS WEB WINDOWS
flutter_datetime_picker_plus


  下拉刷新ANDROID IOS LINUX MACOS WEB WINDOWS
  pull_to_refresh_plus: ^2.0.3



  视频播放组件ANDROID IOS WEB,需要自定义UI
  video_player: ^2.7.0
  video_player_web: ^2.0.13
  wakelock_plus依赖package_info_plus
  视频播放组件ANDROID IOS, web使用video_player打开(chewie依赖video_player: ^2.7.0,chewie依赖wakelock_plus)
  chewie:
    path: plugins/chewie-1.7.4

  图片选择ANDROID IOS WEB
  image_picker: ^0.8.9
  image_picker_for_web: ^2.2.0
  image_pickers: ^2.0.4+5
  #toast提示文字
  #fluttertoast: ^8.1.1 #ANDROID IOS WEB
  #ANDROID IOS LINUX MACOS WEB WINDOWS
  flutter_styled_toast: ^2.2.1
  加载loading
  ANDROID IOS LINUX MACOS WEB WINDOWS
  flutter_easyloading: ^3.0.5

  屏幕工具ANDROID IOS LINUX MACOS WEB WINDOWS
  flutter_screenutil: ^5.9.0

  设备信息 ANDROID IOS LINUX MACOS WEB WINDOWS
  与pdfx2.5.0适配的iOS版本是9.1.0
  device_info_plus: ^9.1.0

  加载PDF ANDROID IOS LINUX MACOS WEB WINDOWS
  本地的.yaml文件pdfx: ^2.5.0依赖device_info_plus: ^9.0.3
  pdfx:
    path: plugins/pdfx-2.5.0
  #将pdf链接转为data,结合pdfx使用 (ANDROID IOS LINUX MACOS WEB WINDOWS)
  internet_file:
    path: plugins/internet_file-1.2.0


  # 国际化 ANDROID IOS LINUX MACOS WEB WINDOWS
  flutter_localization: ^0.1.9

  # uuid ANDROID IOS LINUX MACOS WEB WINDOWS
  uuid: ^4.3.3


  发通知 ANDROID IOS LINUX MACOS WEB WINDOWS
  event_bus: ^2.0.0

  #加载网页 自身也有webView
  ###仅支持Android、iOS端
  webview_flutter: ^4.4.4
  ###webview_flutter的插件扩展,但仅支持Web端
  webview_flutter_web: ^0.2.2+4

  #加载html字符串 ANDROID IOS LINUX MACOS WEB WINDOWS
  lutter_html_v3: ^3.0.6



  #权限判断
  ###仅支持ANDROID IOS WINDOWS,11.1.0依赖SDK version >=3.0.5
  #permission_handler: ^11.0.1
  #permission_handler的隐私太多,iOS部分隐私必须能看到在哪用,不使用不检测    (如:NSAppleMusicUsageDescription)
  #先执行permission_handler_apple-9.1.4的.yaml的pub get(删除广告、蓝牙、传感器、媒体库)
  #再执行permission_handler-11.0.1的.yaml的pub get
  #再执行当前.yaml的pub get
  permission_handler:
    path: plugins/permission_handler-11.0.1

  ###permission_handler的插件扩展,但仅支持Web端
  #permission_handler_web: ^0.0.2
  #ANDROID IOS LINUX MACOS WEB WINDOWS
  widget_permission_manager: ^2.0.2

  #富文本ANDROID IOS LINUX MACOS WEB WINDOWS
  #extended_text: ^9.1.2

  #二维码ANDROID IOS WEB MACOS
  #  ai_barcode: ^3.2.4
  # The following adds the Cupertino Icons font to your application.
  # Use with the CupertinoIcons class for iOS style icons.
  #二维码 ANDROID IOS LINUX MACOS WEB WINDOWS
  qr_flutter: ^4.1.0

  ## 相机
  camera: ^0.10.5+3
  ## 图片多选
  multi_image_picker_view: ^0.0.17
  #ListView 侧滑删除
  flutter_slidable: ^2.0.0

  cupertino_icons: ^1.0.2


  #状态管理ANDROID IOS LINUX MACOS WEB WINDOWS
  provider: ^6.1.1

  ## 安装相关
  open_file: ^3.3.2

用法:

import 'package:connectivity_plus/connectivity_plus.dart';
//检测网络是否可用
  Future<bool> networkIsCanUser() async {
    try {
      if(kIsWeb){
        final connectivityResult = await (Connectivity().checkConnectivity());
        if (connectivityResult == ConnectivityResult.none) {
         //Web无网络
          return false;
        }
        return true;
      }
      String host = "google.com"; //判断国内外,谷歌还是百度
      host = "baidu.com";
      final result = await InternetAddress.lookup(host);
      if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) {
        print(result);//[InternetAddress('39.156.66.10', IPv4), InternetAddress('110.242.68.66', IPv4)]
        return true;
      } else {
        print('网络不可用');
        return false;
      }
    } on SocketException catch (_) {
      print('网络不可用');
      return false;

    } on Error catch (_){
      print('网络不可用');
      return false;
    }
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容