提示:这里只讲解如何使用VSCode来制作一个plugin,如何使用其他IDE来创建plugin可以参考其他博客来学习。
1.创建Plugin
方法一:终端创建
打开终端,输入命令
flutter create --org com.yourcompany -i objc --template=plugin math_tool
| code | 含义 | 值 |
|---|---|---|
| --org | 后面输入域名 | com.yourcompany |
| -i | 创建OC项目(不写的话默认swift) | objc |
| --template | 设置成plugin表示插件类型 | plugin |
| math_tool | 插件项目的名称 | 无 |
方法二:通过其他IDE创建
可参考其他博客学习。
2.Plugin Flutter 部分
vscode为我们默认生成了Plugin Flutter部分的文件math_tool.dart
注意:
1.channel名称('math_tool')必须唯一
2.调用invokedMehtod方法,该方法有两个参数,一是方法名称(不能为空),二是参数(可以为空)
3.Plugin iOS 部分
vscode生成的MathToolPlugin.h/m文件是iOS部分的工具类
| 方法名 | 含义 |
|---|---|
| + registerWithRegistrar | 注册Plugin |
| - handleMethodCall | flutter主动调用交互回调 |
---------------------------------------------------------------------------------------------
注册Plugin
下面对iOS中的MathToolPlugin文件进行编写
以实现一个加法方法为例子
通过监听方法的调用来判断方法名称是否匹配,通过获取call.arguments参数,传递给sumFucWithA:B:方法,然后吧调用过返回给Flutter端
4. 加载Plugin
4.1 本地加载
新建一个项目,在项目根目录下(plugin_test_demo),创建文件夹(plugins),然后把插件(math_tool)移动到plugins下。
编辑项目的pubspec.yaml文件:
4.2 Hosted packages
通过该方法,可以把编写的Plugin发布到 pub.dartlang.org 供他人使用。
- 4.2.1 发布HostedPackages
打开终端,在当前需要上传的Plugin的根目录下输入命令
flutter packages pub publish --dry-run
flutter packages pub publish
注意:发布的过程中可能会出现问题,警告和错误描述的都挺清晰,参照其他博客解决即可。
参考一下博客,如果没有解决问题,查阅其它博客即可,在此感谢以下博主提供的解决方案。《发布失败问题解决》、《Profier+Showshks系统全局代理的正确姿势》、《配置终端Terminal使用Larn》
上面链接的名称内容因为违反了平台敏感词检测规则,所以删减了部分单词,具体点击链接查看即可。
解决所有问题之后,终端再次执行命令
flutter packages pub publish
等待上传成功后终端会出现如下提示:
Looks great! Are you ready to upload your package (y/n)? y
Uploading...
Successfully uploaded package.
发布成功后,你的gmail就会收到邮件通知,邮件中有你发布的Plugin的链接地址