1.12 之前
public static void registerWith(PluginRegistry registry) {
//防止多次注册
final String key = TestFluttertoAndroidTextViewPlugin.class.getCanonicalName();
if (registry.hasPlugin(key)) return;
//初始化 PluginRegistry
PluginRegistry.Registrar registrar = registry.registrarFor(key);
//设置标识
registrar.platformViewRegistry().registerViewFactory("com.flutter_to_native_test_textview", new TestViewFactory(registrar.messenger()));
}
- 然后在MainActivity的onCteate方法里调用注册方法
TestFluttertoAndroidTextViewPlugin.registerWith(this)
1.12版本及后续
class UnityViewRegistrant {
fun registerWith(flutterEngine: FlutterEngine) {
val key = UnityViewRegistrant::class.java!!.canonicalName
val shimPluginRegistry = ShimPluginRegistry(flutterEngine)
if (shimPluginRegistry.hasPlugin(key)) return
val registrar = shimPluginRegistry.registrarFor(key)
registrar.platformViewRegistry().registerViewFactory("unityView", UnityViewFactory(StandardMessageCodec()))
}
}
- 在MainActivity的configureFlutterEngine调用注册方法
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine)
UnityViewRegistrant().registerWith(flutterEngine)
}