1.问题
在Android 的 webview 中 显示 vue 网页后,发现有个网址传参并没有实现正确的逻辑操作,在页面上显示的结果不一样。
测试网页传参,传参读取正确。测试逻辑运算及其赋值,正确。
发现问题:在网页打印反馈中发现报错:Uncaught TypeError: Cannot read property ‘getItem’ of null
2.原因
getItem是网页上调用localStorage或者sessionStorage在浏览器中读取储存数据时调用的方法。
现在该方法读取的为空,按网页的代码来看如果为空会走其他的方法,但是查看发现为空的情况也没实现,应该的是在读写浏览器的储存数据方面导致问题。查询该报错了解到,Android 的 webview 中默认禁止网页Dom缓存的,所以网页无法读写缓存数据,才导致该问题。(还有人抱怨说前端工程师写的代码不规范,前端可不背锅,iOS和网页都没该问题,话说,Android不也是前端么)。
3.解决
webview 中设置允许缓存数据。
//允许Dom缓存数据
webSettings.setDomStorageEnabled(true);
4.反思
有问题还得先从调试窗口看起,把报错解决了,别自己臆想些问题原因。先解决了那个报错,岂不能节省很多时间。