最近给客户开发的app测试时出现了页面无法正常加载的问题,检查日志后发现了几个错误:
Uncaught SyntaxError: Unexpected token =>
Uncaught SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
原因是6.0之前版本的webview不支持ES6,把代码重构为ES5肯定是下下策的解决方法,后来尝试了三个解决方案:
1、使用Babel,通过<script type=”text/babel”></script>的方式,让代码在babel中工作,此种办法性能较差,且引用的一些库无法工作,未最终弄采用,只做参考。
2、使用前端打包工具,如grunt,webpack等,将ES6代码自动编译为ES5。
3、这个是最终采取的处理方案:更换浏览器内核,备选项有两个,X5和crosswalk,看技术文章说crosswalk体积比较大,果断抛弃,使用了与微信QQ共享内核的X5。
官方地址:
https://x5.tencent.com/tbs/index.html
相关第三方参考文档:
https://blog.csdn.net/qq_35070105/article/details/80047595
https://blog.csdn.net/weixin_37730482/article/details/73505969
X5内核切换时改动量较小,小到几乎将引用的包名和定义类型改动之后就可以工作
版权声明:本文为mofeimo110原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。