admin管理员组文章数量:1559118
前言
事情的开始是原生js写了个放在webview上的h5页面,在现有的几台测试机测试过没有问题,就直接上线了。一段时间后,有客户反馈页面显示不正常。要了客户的账号在自己的手机上测试是没有问题的,反复查过代码实在想不出问什么其他手机没有问题,就客户的手机有问题(排除了网络问题)。改了几次写法,最后找到一篇博文发现可能是webview的问题(《关于oppo、vivo手机低于android 7.0版本webview中js不执行,css加载异常的问题》)。查了下用户的手机系统确实是低于android7的,然后请安卓小哥哥帮我看下能不能再webview中加那些代码,小哥哥帮我看过后写了个测试包找了个云测平台测试,发现可能不是webview的问题,是代码本身有问题 = = 。。。
问题
云测平台报错日志如下:
一开始条件反射就去找 uncaught syntax error: unexpected identifier异常处理方法,无非就是如下三点:
标点符号的意外(中文逗号 引号等)
asp中onserverclick 和 onclick一起写的时候,onclick = "test()" onserverclick="btn_click",看起来是没有任何问题的,但是 写的时候 onclick里面函数一定要带 ';'分号,不然就会报这个异常,找了半天.....也就是说要这样写onclick = "test();" ,onserverclick里面不用写,但是onclick一定要写
字符串类型的值没有加双引号
但是我如果是标点什么的问题话,编译器会自动报错,但是还是找了很久可能会出现的问题。
后来找到打印出的报错日志,报错的226行,这行大概写的是下面这种变量声明赋值。
let test = 'test';
联想到用户android 5的操作系统,很大可能是因为不兼容es6写法的 let ,这句写在比较开始的地方,这儿报错的话,就导致后面js操作dom节点显示在页面上的内容没有显示。
解决
把es6写法全部改成es5的写法,比如let,const之类的全部都要用回var,不能用箭头函数等。
写在最后
改完后确实就没问题了,啊~~~这个问题差点让我挠秃头 ,借了几台vivo机器一毛钱问题都没有。最后没想到是操作系统版本过低不兼容es6问题。 = = 其实也是因为写的原生js,用react大概就不会了。
(这其实是个充值页面,用户爸爸用这么低版本的手机还能给我们充钱也是很感动了哈哈哈。。。)
本文标签:
j9九游会老哥俱乐部交流区的版权声明:本文标题:android 旧机不执行js,关于vivo x6(android 7.0以下)js代码不执行的原因 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1727361765a1110690.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。