開源網(wǎng)站:
https://pub-web.flutter-io.cn/packages?q=
常用三方:
網(wǎng)絡(luò)請求
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版本使用建議的編譯時選項。此外,它默認(rèn)提供fts5模塊
sqlite3_flutter_libs: ^0.5.12
重型數(shù)據(jù)庫 基于SQLite 依賴sqlite3_flutter_libs
sqflite_common_ffi: ^2.2.0+1
數(shù)據(jù)庫 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
數(shù)據(jù)庫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
網(wǎng)絡(luò)狀態(tài)檢查 ANDROID IOS LINUX MACOS WEB WINDOWS
connectivity_plus: ^4.0.1
狀態(tài)管理 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
加載網(wǎng)絡(luò)圖片ANDROID IOS LINUX MACOS WEB WINDOWS
extended_image: ^8.2.0
調(diào)用系統(tǒng)撥打電話,發(fā)送短信等。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
設(shè)備信息 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鏈接轉(zhuǎn)為data,結(jié)合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
發(fā)通知 ANDROID IOS LINUX MACOS WEB WINDOWS
event_bus: ^2.0.0
#加載網(wǎng)頁 自身也有webView
###僅支持Android、iOS端
webview_flutter: ^4.4.4
###webview_flutter的插件擴(kuò)展,但僅支持Web端
webview_flutter_web: ^0.2.2+4
#加載html字符串 ANDROID IOS LINUX MACOS WEB WINDOWS
lutter_html_v3: ^3.0.6
#權(quán)限判斷
###僅支持ANDROID IOS WINDOWS,11.1.0依賴SDK version >=3.0.5
#permission_handler: ^11.0.1
#permission_handler的隱私太多,iOS部分隱私必須能看到在哪用,不使用不檢測 (如:NSAppleMusicUsageDescription)
#先執(zhí)行permission_handler_apple-9.1.4的.yaml的pub get(刪除廣告、藍(lán)牙、傳感器、媒體庫)
#再執(zhí)行permission_handler-11.0.1的.yaml的pub get
#再執(zhí)行當(dāng)前.yaml的pub get
permission_handler:
path: plugins/permission_handler-11.0.1
###permission_handler的插件擴(kuò)展,但僅支持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
## 相機(jī)
camera: ^0.10.5+3
## 圖片多選
multi_image_picker_view: ^0.0.17
#ListView 側(cè)滑刪除
flutter_slidable: ^2.0.0
cupertino_icons: ^1.0.2
#狀態(tài)管理ANDROID IOS LINUX MACOS WEB WINDOWS
provider: ^6.1.1
## 安裝相關(guān)
open_file: ^3.3.2
用法:
import 'package:connectivity_plus/connectivity_plus.dart';
//檢測網(wǎng)絡(luò)是否可用
Future<bool> networkIsCanUser() async {
try {
if(kIsWeb){
final connectivityResult = await (Connectivity().checkConnectivity());
if (connectivityResult == ConnectivityResult.none) {
//Web無網(wǎng)絡(luò)
return false;
}
return true;
}
String host = "google.com"; //判斷國內(nèi)外,谷歌還是百度
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('網(wǎng)絡(luò)不可用');
return false;
}
} on SocketException catch (_) {
print('網(wǎng)絡(luò)不可用');
return false;
} on Error catch (_){
print('網(wǎng)絡(luò)不可用');
return false;
}
}