开源网站:
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;
}
}