请问webview出现白屏(动态创建场景)时,应用侧当前有哪些分析定位手段吗?

请问webview出现白屏(动态创建场景)时,应用侧当前有哪些分析定位手段吗?

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

​白屏目前 首先是使用devtool 工具进行调试,​https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/web-debugging-with-devtools-V5​,针对于动态创建的白屏,是已知问题,主要和HarmonyOS webview的GC机制有关。

当前web使用BuilderNode通过无状态的UI方法@Builder生成离线web组件。此时创建的web组件是无状态的。来回切换多次,会创建多个离线web组件,当web创建超过5个时,会触发tabdiscarding机制,冻结部分web实例,使其无法渲染(后台释放资源节省内存),调用全屏接口后,当前调用的web实例被一致被判断为前台,所以一致处于 active状态。后面再次创建的无状态web则被定义为inactive状态。

更详细来讲其实就是一个Frame Eviction Manager机制,是负责管理web中的帧缓存,根据一定的策略将一些不常用或者不重要的帧从内存中移除,以释放内存空间,节省内存提高稳定性。对应的是web源码中的max_number_of_saved_frames_字段,其设置的最大值为5

在每次创建好web实例,调用loadurl时,设置WebController的onActive方法主动激活状态即可解决此问题。需要应用调用相关接口。离线web释放需要先对使用的framenode进行释放,才可析构离线web组件。​

分享
微博
QQ
微信
回复
2天前
相关问题
应用启动框架AppStartup应用场景分析
361浏览 • 1回复 待解决
应用动态导入的场景,有人知道
254浏览 • 1回复 待解决
应用启动前会出现一个白屏
824浏览 • 1回复 待解决
HarmonyOS webview显示白屏
59浏览 • 1回复 待解决
当前有没有图片裁剪相关demo
262浏览 • 1回复 待解决
定位权限未开通能区分场景?
254浏览 • 1回复 待解决
哪些应用场景
3573浏览 • 1回复 待解决
WebView支持获取当前页面url
843浏览 • 1回复 待解决
如何解决webview离线加载白屏问题
1041浏览 • 1回复 待解决
JSVM-API的应用场景哪些
268浏览 • 1回复 待解决
如何解决webview loaddata白屏问题
1036浏览 • 1回复 待解决
ArkTS与Native分别如何动态加载SO库
2268浏览 • 1回复 待解决
Webview是否支持定位功能?
587浏览 • 1回复 待解决