[疑难杂症] Android WebView 无法打开天猫页面

本文记录了一次解决Android WebView无法加载天猫页面的问题。通过Chrome Inspect Device和Android Logcat定位到错误源自localStorage的hotelLon读取失败。分析发现,Android默认关闭localStorage功能,设置`setDomStorageEnabled`为true即可解决,但需注意其安全风险。
摘要由CSDN通过智能技术生成

欢迎转载,但请务必注明出处!

http://ryanhoo.github.io/blog/2014/09/17/android-webview-setdomstorageenabled

Android WebView 突然无法打开天猫的详情页,一直停留在加载状态。而在此之前,应用里是完全可以正常访问的,通过搜索,找到解决方法,简单设置一行代码
webView.getSettings().setDomStorageEnabled(true) 即可解决问题,但背后的原因又是什么呢?

Android WebView Can't Load TMall Pages

我们不能只是做解决问题的程序员,还要做好奇的程序员,跟我来一探究竟吧。

定位问题

本着发现问题 -> 分析问题 -> 解决问题的步骤,接下来我们要定位问题的来源。

Chrome Inspcet Device

我首先想到的是,Android 4.4 以后的 WebView 是基于 chromium 内核的,这带来了一个福利是,我们可以在 chrome 中 inspect device,像普通网页一样,进行 debug,精准、快速定位问题来源。正好我手头有 Nexus 5 刷的是 Android L Preview 还有 Mi3 是最新的 MIUI V6,打开 Chrome,Tools -> Inspect Devices,就可以看到原生应用里的 WebView 页面了。

Chrome Inspect Devices

点击 inspect 即可进入 Developer Tools,一切尽在掌控,可以清楚看到 console 输出的错误信息。

Chrome Developer Tools

Android Logcat

实际上,网页加载中 js 输出的错误信息也完整的打印在了 Logcat 中。

09-17 11:28:20.265  25993-25993/ I/chromium﹕ [INFO:CONSOLE
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值