实际开发中引入第三方的功能模块极为常见,也就是别人写好的、封装好的实现特定功能的操作,这里称之为“包”,也可称为“库”。几乎每个平台都有管理第三方库的功能,比如iOS用Cocoapods或Carthage来管理依赖,Node中通过npm , php使用Composer等。

Flutter中对第三方依赖的管理通过配置文件pubspec.yaml来实现的;该文件位于项目根目录下;

5520d91de14bbff14559a7679bcbcef0.png

我们用到的第三方写在这里:

dependencies:  flutter:    sdk: flutter  dio: ^3.0.0  cupertino_icons: ^0.1.3

比如我添加了dio网络请求的库,如上形式;具体操作如下;

1、找到我们需要的包在代码库中的名称及所需的版本号:

所有的第三方都有个仓库来保存这些东西,我们使用就得先把它找出来,这个仓库就在这里【https://pub.flutter-io.cn】,国内站点访问;常用的第三方功能都能在这找到。

34367736f8f130e0fa42954ff0678633.png

图1

比如,搜dio;

5fc1d2d2d582767bf2845733d6cb326c.png

图2

第一个就是我们所需的包,直接如上图1设置即可;OK,这只是开始,然后执行

flutter pub get
ee5839baf2c6076f1e8123105ed6586f.png

图3

获取代码到本地,也就是从远程仓库下载到本地,才能正常使用。

2、获取第三方包

直接如图3在Androidstudio中操作,不出意外的报错了;

Running "flutter pub get" in dctt_flutter...

终端一直提示这种状态,等了好久报错超时,无法连接“pub.dartlang.org/”,这是境外的,网络被墙了无法访问;

明明在系统变量里配置了访问的国内镜像呢;

export PUB_HOSTED_URL=https://pub.flutter-io.cn export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cnexport PATH=/Users/uu/Desktop/flutter/sdk/bin:$PATH

在工具中却不起作用;此路不通,试试命令行操作;

MacBook-Pro dctt_flutter % flutter pub getWaiting for another flutter command to release the startup lock...

还是报错了,上次操作未完成被锁住了,这个好处理;只要进入flutter sdk 目录,然后找到bin/cache/lockfile文件,删除后再运行命令,错误没了。

17e045e332280aa4376ba8c8a7590d26.png

命令执行完成,此时包应该下载到本地了;pubspec.lock 文件中可以看到有包的信息;

代码中输入dio:如下有反应了,这说明包引入成功了!^_^!

fbcb380b33ed4a3e98afe503586de75d.png

3、下载的第三方包的位置

下载的代码包去哪里了,我们的项目中没有看到呀!不像iOS的那样,直接项目工程下就看到下载的代码;

顺着提示路径我们找到了这里:

232295bb195f7f7e5ee62d8018abda9d.png

居然在我们的Flutter SDK 中缓存目录里,

9c84cb57ac2c5d2d990eb1fc71705669.png

里面两个目录对应两个镜像地址,里面的包就是我们远程下载的,然后项目中直接使用,打包时直接链接进来了;

终于知道包怎么回事了,下面就可以在项目中愉快的使用了,不知道怎么用?不知道有什么功能?都没关系,直接去文档描述及示例,用了几次自然就熟悉了。

本文作者:头条号【程序员光哥】,喜欢我就关注我吧,有任何问题欢迎指导,十分感谢!

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐