
實(shí)際開(kāi)發(fā)中引入第三方的功能模塊極為常見(jiàn),也就是別人寫(xiě)好的、封裝好的實(shí)現(xiàn)特定功能的操作,這里稱(chēng)之為“包”,也可稱(chēng)為“庫(kù)”。幾乎每個(gè)平臺(tái)都有管理第三方庫(kù)的功能,比如iOS用Cocoapods或Carthage來(lái)管理依賴(lài),Node中通過(guò)npm , php使用Composer等。
Flutter中對(duì)第三方依賴(lài)的管理通過(guò)配置文件pubspec.yaml來(lái)實(shí)現(xiàn)的;該文件位于項(xiàng)目根目錄下;

我們用到的第三方寫(xiě)在這里:
dependencies:
flutter:
sdk: flutter
dio: ^3.0.0
cupertino_icons: ^0.1.3
比如我添加了dio網(wǎng)絡(luò)請(qǐng)求的庫(kù),如上形式;具體操作如下;
1、找到我們需要的包在代碼庫(kù)中的名稱(chēng)及所需的版本號(hào):
所有的第三方都有個(gè)倉(cāng)庫(kù)來(lái)保存這些東西,我們使用就得先把它找出來(lái),這個(gè)倉(cāng)庫(kù)就在這里【https://pub.flutter-io.cn】,國(guó)內(nèi)站點(diǎn)訪問(wèn);常用的第三方功能都能在這找到。

比如,搜dio;

第一個(gè)就是我們所需的包,直接如上圖1設(shè)置即可;OK,這只是開(kāi)始,然后執(zhí)行
flutter pub get

獲取代碼到本地,也就是從遠(yuǎn)程倉(cāng)庫(kù)下載到本地,才能正常使用。
2、獲取第三方包
直接如圖3在Androidstudio中操作,不出意外的報(bào)錯(cuò)了;
Running "flutter pub get" in dctt_flutter...
終端一直提示這種狀態(tài),等了好久報(bào)錯(cuò)超時(shí),無(wú)法連接“pub.dartlang.org/”,這是境外的,網(wǎng)絡(luò)被墻了無(wú)法訪問(wèn);
明明在系統(tǒng)變量里配置了訪問(wèn)的國(guó)內(nèi)鏡像呢;
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
export PATH=/Users/uu/Desktop/flutter/sdk/bin:$PATH
在工具中卻不起作用;此路不通,試試命令行操作;
MacBook-Pro dctt_flutter % flutter pub get
Waiting for another flutter command to release the startup lock...
還是報(bào)錯(cuò)了,上次操作未完成被鎖住了,這個(gè)好處理;只要進(jìn)入flutter sdk 目錄,然后找到bin/cache/lockfile文件,刪除后再運(yùn)行命令,錯(cuò)誤沒(méi)了。

命令執(zhí)行完成,此時(shí)包應(yīng)該下載到本地了;pubspec.lock 文件中可以看到有包的信息;
代碼中輸入dio:如下有反應(yīng)了,這說(shuō)明包引入成功了!_!

3、下載的第三方包的位置
下載的代碼包去哪里了,我們的項(xiàng)目中沒(méi)有看到呀!不像iOS的那樣,直接項(xiàng)目工程下就看到下載的代碼;
順著提示路徑我們找到了這里:

居然在我們的Flutter SDK 中緩存目錄里,

里面兩個(gè)目錄對(duì)應(yīng)兩個(gè)鏡像地址,里面的包就是我們遠(yuǎn)程下載的,然后項(xiàng)目中直接使用,打包時(shí)直接鏈接進(jìn)來(lái)了;
終于知道包怎么回事了,下面就可以在項(xiàng)目中愉快的使用了,不知道怎么用?不知道有什么功能?都沒(méi)關(guān)系,直接去文檔描述及示例,用了幾次自然就熟悉了。
喜歡我就關(guān)注我吧,有任何問(wèn)題歡迎指導(dǎo),十分感謝!