一 前言
如果 Flutter 或其社區(qū)沒有你需要的插件,那么你需要構(gòu)建自己的插件。
Flutter 插件的架構(gòu)就像在 Android 中使用 Event bus 一樣:你可以發(fā)出消息并讓接收者進(jìn)行處理,最后接收者將結(jié)果發(fā)回給你。在這種情況下,接收者將是 iOS 或 Android 平臺。
二 ?Flutter package包括兩種類型
??Dart packages(Dart包) ?和 Plugin packages(插件包)
1 Dart packages的開發(fā)
?1) 創(chuàng)建?
?命令?flutter create --template=package shelf
2) 實(shí)現(xiàn)?
目錄結(jié)構(gòu)

其中 shelf.dart里要export src里對應(yīng)的dart文件
可參考?開源Demo
2 Plugin package開發(fā)
1)創(chuàng)建?
命令?flutter create --template=plugin hello 或者??flutter create --org com.example ?--template=plugin hello
其中 ?com.example為包名
2)實(shí)現(xiàn)
? ? a:定義API(.dart)?
? ? ? ?對應(yīng)路徑 lib/hello.dart
? ? b:添加Android平臺代碼(.java/.kt)
? ? ? ?對應(yīng)路徑android/src/main/java/com/example/?hello/HelloPlugin.java
? ? ? ?實(shí)現(xiàn)MethodCallHandler接口?
? ? c:添加iOS平臺代碼(.h+.m/.swift)
? ? ? ? 對應(yīng)路徑ios/Classes/HelloPlugin.m
? ? d:API和平臺代碼聯(lián)系起來 ?這一步使用:platform channels, channel詳解可查看http://www.itdecent.cn/p/cb96d62f5042
? ?可參考?開源Demo