WebView 加载 Imgur 相册失败

WebView fails to load Imgur albums

这是一个奇怪的问题,但我不确定从这里可以尝试什么。在我的应用程序中,用户可以打开各种 links,为此我提供了带有 WebView 的片段。这些 link 中很大一部分是 Imgur 相册,但由于某些原因,这些相册无法在我尝试过的设备或模拟器上的 WebView 中正确加载。我已经设置了一个带有单个 WebView 的应用程序,它在此处显示行为:https://github.com/damien5314/imgur-album-webview.

我在 Chrome 中设置了 WebView 调试,并在 WebView 中并排加载页面,以及在启用移动仿真的桌面 Chrome 上加载页面。在桌面 Chrome 上,页面在收到来自 api.imgur.com 的图像列表响应后加载,然后在页面加载后下载并显示各个图像。在我设备上的 WebView 上,在收到 Imgur API.

的响应后,图像永远不会下载

注意 - 只有 Imgur album 页面给我问题。个别图片加载正常。

mWebView.loadUrl("http://imgur.com/a/2dtj8"); // Album, does not load images
// mWebView.loadUrl("https://imgur.com/X2eInSx"); // Single image, works fine

我想说这是他们在 Android 上的 JS 的 Imgur 问题,但由于 JS 被混淆了,我的网络调试选项有限,更不用说我可以加载 same link 在类似应用程序的 WebView 中,因此必须有某种方法使其工作。如果有人在我的代码中发现任何问题,请告诉我,否则任何有关调试此问题的后续步骤的建议都将不胜感激。谢谢!

嗯,这实际上比原先想象的要容易得多。我没有注意到在 WebView 中加载页面时发生 JavaScript 错误,而在 Chrome.

中加载页面时不会发生该错误
Uncaught TypeError: Cannot read property 'getItem' of null

在跟踪 JS 时,我发现这是由于使用了 window.localStorage。除非启用该设置,否则在 WebView 中不允许这样做。

mWebView.getSettings().setDomStorageEnabled(true);

归功于此答案:Android webview & localStorage