Android低版本自带Webview不支持ES6解决方法

  • Post author:
  • Post category:其他


最近给客户开发的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 版权协议,转载请附上原文出处链接和本声明。