用途:帮助开发者构建生产级 Flutter 插件,实现 Dart 与原生平台(iOS Swift、Android Kotlin)之间的集成。
主要能力:
- 插件创建与结构:使用 flutter create --template=plugin --platforms=android,ios,web my_plugin 生成联邦式插件,包含 lib 公共 API、android、ios、example、test 等目录。
- MethodChannel:Dart 侧通过 invokeMethod 发起请求/响应调用,原生侧分别用 FlutterMethodChannel(Swift)与 MethodChannel(Kotlin)处理,支持 getPlatformVersion、getDeviceInfo、performAction 等方法。
- EventChannel:用于流式事件,Dart 侧用 receiveBroadcastStream 映射为数据流,原生侧实现 FlutterStreamHandler(iOS)与 EventChannel.StreamHandler(Android),在 onListen/onCancel 中启停数据推送。
- 联邦式架构:拆分为面向应用的包、platform_interface 包与各平台实现包,通过 implements 与 dartPluginClass 声明,平台接口使用 PlatformInterface 与 token 校验。
- 错误处理:自定义 PluginException,捕获 PlatformException 并按 code 分类处理。
- 发布:在 pubspec.yaml 配置插件元数据与平台信息,使用 flutter pub publish --dry-run 校验后发布到 pub.dev。
使用方式:按资料中的目录结构与代码示例搭建插件,先定义平台接口,再分别实现各平台通道,最后补充示例应用与测试。
适用场景:需要访问原生能力(设备信息、传感器、平台 API)的 Flutter 插件开发。
限制:资料未提供具体版本兼容范围、性能数据或收费信息;排查部分仅列出常见问题与检查步骤。