问题描述
丁香园 app 安卓版可以打开旧版调查问卷网页,但是打不开新版调查问卷网页。
iOS 版可以正常打开旧版和新版的问卷。
Android 开发环境报错: “Uncaught TypeError: Cannot read property ‘getItem’ of undefined”。
和 app 的安卓开发去确认,app 是否设置了支持 js 代码执行,被告知已经设置支持。
问题原因
作为 HTML5 标准的一部分,绝大多数的浏览器都是支持 localStorage 的,
但是鉴于它的安全特性(任何人都能读取到它,尽管有相应的限制,将敏感数据存储在这里依然不是明智之举),
Android 默认是关闭该功能的。
解决方案
在 Android 项目代码中,增加:
webView.getSettings().setDomStorageEnabled(true);
参考
http://stackoverflow.com/questions/4930623/webview-causing-uncaught-typeerror-when-loading-www-google-com
http://ryanhoo.github.io/blog/2014/09/17/android-webview-setdomstorageenabled/