在flutter多引擎下,打开一个flutter页面(新建一个flutter引擎),该页面有一个platformview,随后退出该页面(同时销毁flutter引擎),此时Platformview没有被销毁。
复现步骤:
1、编译demo中的flutter(web\_viewmodule)工程(flutter build har --release);
2、将har拷贝到demo中的HarmonyOS原生工程(fluttermoduletest1);
3、运行项目,打开为一个webview加载了知乎网页;
5、点击顶部的open next flutter page按钮,打开一个新的flutter页面(新建了一个flutter引擎);
6、退出这个flutter页面回到原来的页面;
7、预期新页面中的platformview应该被销毁掉,platformview的dispose方法被调用,命令行中输出wyy\_test webview dispose,实际没有输出wyy\_test webview dispose。
dispose接口为PlatformView的抽象方法,组件未与页面生命周期绑定时,需要手动调用触发flutterEngine.getPlatformViewsController()?.dispose()方法。