开发Native Plugin时`GeneratedPluginRegistrant.class`的目的和用法

Ell*_*ite 11 android dart flutter

我目前正在构建一个插件来利用 Android 和 iOS 上的原生 API。

我已经写MyPlugin了实现MethodCallHandler. 在我的插件项目中,我有一个示例应用程序。这个示例应用程序有一个生成的类GeneratedPluginRegistrant.class,它调用静态方法registerWith。所有这些都用作MainActivity.

我有几个问题。

  1. 似乎MyPlugin必须匹配插件项目的名称。IE - 项目是flutter_tools,我的插件必须命名FlutterToolsPlugin,否则GeneratedPluginRegistrant会中断。是如何GeneratedPluginRegistrant产生的?

  2. 的目的是GeneratedPluginRegistrant什么?

  3. 我的插件注册后实际发生了什么?

  4. 如果我想使用MyPlugin,可以不用GeneratedPluginRegistrant吗?我想,以生命周期方法等回答onActivityResult,似乎这种封装使我不能直接在插件进行交互FlutterActivity

  5. 我可以在本机端与我自己的其他本机插件交互而无需通过 Dart 来回切换吗?

fei*_*ong 8

generatedPluginRegistrant 由 FlutterApplication 自动生成,以便注册 Flutter 应用程序的 pubspec.yaml 文件中定义的插件。通过向GeneratePluginRegistrant#registerWith函数提供PluginRegistry(如FlutterActivity)实例,您可以在Flutter插件和Android API之间进行交互。参见@PluginRegistry文档