一 前言
如果 Flutter 或其社区没有你需要的插件,那么你需要构建自己的插件。
Flutter 插件的架构就像在 Android 中使用 Event bus 一样:你可以发出消息并让接收者进行处理,最后接收者将结果发回给你。在这种情况下,接收者将是 iOS 或 Android 平台。
二 Flutter package包括两种类型
Dart packages(Dart包) 和 Plugin packages(插件包)
1 Dart packages的开发
1) 创建
命令 flutter create --template=package shelf
2) 实现
目录结构
其中 shelf.dart里要export src里对应的dart文件
可参考 开源Demo
2 Plugin package开发
1)创建
命令 flutter create --template=plugin hello 或者 flutter create --org com.example --template=plugin hello
其中 com.example为包名
2)实现
a:定义API(.dart)
对应路径 lib/hello.dart
b:添加Android平台代码(.java/.kt)
对应路径android/src/main/java/com/example/hello/HelloPlugin.java
实现MethodCallHandler接口
c:添加iOS平台代码(.h+.m/.swift)
对应路径ios/Classes/HelloPlugin.m
d:API和平台代码联系起来 这一步使用:platform channels, channel详解可查看https://www.jianshu.com/p/cb96d62f5042
可参考 开源Demo