安卓webview嵌入h5,进入广告后,h5黑屏

  • Creator 版本:3.7.0
  • 目标平台:安卓
    黑屏时无报错
    消消乐打包成h5,安卓webview嵌入,正常使用,通关后进入广告(另一个webview),广告关闭后,游戏有很大概率出现黑屏,背景音乐还在,点击黑屏能听到消除音效。 图中黑屏部分为h5游戏

错误原因:webglcontextlost
我的处理方法是 刷新网页,重启游戏,暂时没有发现更好处理的方法

需要保证webview初始化在广告初始化后,也就是说广告的层级要比webview高就行了。
但是我发现2.4的版本,在onCreate中就有初始化webview

        if(mWebViewHelper == null){
            mWebViewHelper = new Cocos2dxWebViewHelper(mFrameLayout);
        }

但是3.x中,应该是为了延迟渲染还是怎么的,是在使用的时候才会加进来,那么你如果在onCreator就初始化广告的话,这个webview的framelayout就比广告高了

我是打包成h5给安卓嵌入webview的,广告webview很大可能会先出,可能一进app就需要展示广告,而后再展示游戏。不过这个暂未发现黑屏。问题是出在游戏过程中展示广告webview,关闭广告后

刷新不行,问题很多

我建议你log一下看视频的时候整个系统webview的GPU进程内存占用量,还有js内存占用量

Chrome每个Tab都会启用单独的进程来处理页面。但所有的进程都会共用一个GPU进程。上线我记得是1.5g
JS内存不要超过1.4g

大佬 代码能贴一下吗

function reload() {
console.error(‘webglcontextlost’); // 执行一些自定义操作
setTimeout(() => {
location.reload(); // 刷新网页
}, 2000);
}
canvas.addEventListener(‘webglcontextlost’, reload, false); // 监听报错

最新研究成果,调用了2次及以上信息流,会炸

有解决办法了吗

没啥解决方法,自己写一个管理类,有2次就先关闭前面的,再打开新的,或者后面的不打开。

刚又出现,看了下控制台,输出
WebGL context lost.
WebGLContextEvent fisTrusted: true
,如图
微信截图_20230927183534