开发本机插件时,GeneratedPluginRegistrant.class的用途和用法

时间:2018-10-23 22:20:05

标签: android dart flutter

我目前正在构建一个插件,以利用Android和iOS上的本机API。

我写了实现MyPlugin的{​​{1}}。在我的插件项目中,我有一个示例应用程序。此示例应用程序具有一个生成的类MethodCallHandler,该类调用静态方法GeneratedPluginRegistrant.class。所有这些都用作registerWith中的一个衬里。

我有几个问题。

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

  2. GeneratedPluginRegistrant的用途是什么?

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

  4. 如果我想使用GeneratedPluginRegistrant,可以不用MyPlugin来做到吗?我希望响应诸如GeneratedPluginRegistrant之类的生命周期方法,并且这种封装似乎使我无法直接在onActivityResult中与插件进行交互。

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

1 个答案:

答案 0 :(得分:0)

FlutterApplication自动生成GeneratedPluginRegistrant,以注册在Flutter App的pubspec.yaml文件中定义的插件。通过为GeneratedPluginRegistrant#registerWith函数提供诸如 FlutterActivity 之类的PluginRegistry实例,可以启用Flutter插件与Android API之间的交互。 参见@ PluginRegistry Documentation