关于Layabox发布的OPPO小游戏程序出错在谷歌浏览器上无报错的解决方案

关于Layabox发布的OPPO小游戏程序出错在谷歌浏览器上无报错的解决方案

问题原因

在本地运行时,程序出错会在浏览器中会通过window.onerror输出错误信息
在这里插入图片描述
但在OPPO平台上程序出错时会跳转到底层脚本VM6中的window.qg._onErrorOccurred方法中。
在这里插入图片描述
该脚本的错误日志由window.Error中的message提供。但是该方法中的r变量会返回undefined所以导致无法正确输出错误日志。因为e._getFunctionCallbackArray方法中的_cbFunctionArrayMap对象为空,所以e._getFunctionCallbackArray方法无法正确的传回返回值,导致变量r为undefined无法输出错误信息。
在这里插入图片描述
在这里插入图片描述

解决方法

由于该底层脚本是只读的,所以想要重写window.qg._onErrorOccurred方法是不可行的,但是通过调试发现当该方法运行完成之后还会调用window.qg,onError方法,所以我们只需要在Main中调用window.qg.onError方法并将window.Error保存的错误日志传给它即可
在这里插入图片描述
具体代码如下
在程序入口调用
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值