携手创作,一起成长!这是我参加「日新计划 8 月更文挑战」的第3天,点击检查活动详情
题记:咱们在开发flutter项目的时分通常会运用一些三方的的packages或许plugin,关于packages和plugin直接的区别主要是:packages主要是包括的Dart代码块,而plugin则包括iOS和android的代码。
因此来说咱们创立plugin
和packages
的流程是相似的,这儿就以创立plugin
为例进行展示
咱们能够看下官方的文档怎么创立packages
1. 创立
咱们能够通过终端指令进行创立,比方创立package
,运用dart
指令
dart create -t package <PACKAGE_NAME>
或许咱们运用flutter
指令
flutter create --template package <PACKAGE_NAME>
如果是plugin
的话也是相似
flutter create --template plugin <PACKAGE_NAME>
这儿会提示说没有指定运转渠道
,能够在该项目下运转
flutter create -t plugin --platforms <platforms>
创立plugin的时分需要运用--org
设置安排名
flutter create --org com.example --template plugin <PACKAGE_NAME>
指定言语
flutter create --template plugin -i swift -a kotlin <PACKAGE_NAME>
当然咱们能够运用AndroidStudio
进行创立
你能够挑选自己想要的类型,包括plugin,module,packages
等,以及安排名和渠道以及言语
2. plugin代码编写
咱们打开创立好的plugin
项目,这儿能够看到有个example
是能够运转的
在lib
中有iOS
和android
目录,用于存放咱们iOS
和android
的代码,但是不可运转
,这儿是不是和咱们的组件化
很像
Cocopods组件化
目录
咱们这儿看下官方的列子就是获取当前运转的版本号
示例代码
咱们能够模仿写一点咱们自己的代码比方获取手机电量
@visibleForTesting
final methodChannel = const MethodChannel('by_example_plugin');
@override
Future<String?> getPlatformVersion() async {
final version = await methodChannel.invokeMethod<String>('getPlatformVersion');
return version;
}
Future<String?> getBatteryLevel() async {
int batteryLevel = await methodChannel.invokeMethod('getBatteryLevel');
return batteryLevel.toString();
}
咱们在iOS端进行注册
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
if (call.method == "getBatteryLevel") {
receiveBatteryLevel(result: result)
}else {
result("iOS " + UIDevice.current.systemVersion)
}
}
private func receiveBatteryLevel(result: FlutterResult) {
let device = UIDevice.current
device.isBatteryMonitoringEnabled = true
if device.batteryState == UIDevice.BatteryState.unknown {
result(FlutterError(code: "UNAVAILABLE",
message: "Battery level not available.",
details: nil))
} else {
result(Int(device.batteryLevel * 100))
}
}
dart中的页面能够模仿 example
中进行执行
模拟器无法获取
电量咱们运用真机
这样就能够了,至于android
代码也是相似的能够查下教程。咱们能够模仿案列的交互方式学习官方原生和flutter交互的代码风格
。
3. 发布
检查
咱们CD到当前demo下执行
flutter packages pub publish --dry-run
这儿报错
-
pubspec.yaml
配置主页
License
咱们运用GitHub
创立一个license
,这儿姓名随便起,license挑选BSD3
把创立好的license
放入 plugin
中的License文件
配置好后再次执行通过
发布
flutter packages pub publish
这儿需要认证
咱们这儿要指定服务器
flutter packages pub publish --server=https://pub.dartlang.org
复制上面的链接进行授权
,这儿就要用到谷歌账号
,授权成功
授权成功后就会上传
这儿说咱们没有描绘,咱们添加描绘
咱们看下官方文档的描绘要求dart.dev/tools/pub/p…
要求60-180
字
再次上传
咱们去检查上传成功
4. 小结
以上就是flutter中plugin
得创立与发布
,关于packages
也是相似。中心的一些关键主要包括License,描绘,主页
等,当然也要有谷歌账号
以及外网条件
。中心关于一些图片资源
的运用以及一些导入的技巧
或许引用三方的库后续有机会在共享,感觉有用的点个赞
或许收藏下下次便利你自己操作哦。