Android 应用无法打开某网页的原因之一

问题描述

丁香园 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/

志遥 wechat
微信扫一扫,我在丁香园记公众号等你