我试图实现的是在flutter应用程序中嵌入一个本地视图。与这里解释的内容类似。
我的问题是,我得到以下错误:
Unhandled Exception: PlatformException(error, java.lang.IllegalStateException: Trying to create a platform view of unregistered type: com.example.cat_app/textview
所以我查了一下如何注册插件。我尝试了以下代码,但无法使其工作。做了一些研究,似乎从flutter 1.12+插件自动注册,所以不需要注册它们。但我的代码仍然给出了未注册的插件错误。。。
下面的代码给了我未解析的参考注册器错误btw
class MainActivity: FlutterActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
GeneratedPluginRegistrant.registerWith(this)
WebViewPlugin.registerWith(this.registrarFor("com.yourPackageName"))
}
}
我被困在这里,我不知道该怎么做才能在最近版本的Flutter中注册插件。我有什么办法可以达到我需要的吗?提前感谢
要注册自定义插件,请尝试上述方法https://flutter.dev/docs/development/platform-integration/platform-views
-
对于MainActivity,由于它实现了
io.flutter.embedding.android.FlutterActivity
类,您将需要重写configureFlutterEngine(...)
方法 -
包括以下WebViewPlugin.registerWithV2(flatterEngine(;
-
通过颤振引擎并按如下方式注册:
public static void registerWithV2(@NonNull FlutterEngine flutterEngine) { BinaryMessenger _messenger = flutterEngine.getDartExecutor().getBinaryMessenger(); flutterEngine.getPlatformViewsController().getRegistry().registerViewFactory("MyViewTypeId", new CWebFactory(_messenger)); }