这是一个奇怪的问题,但我不确定该怎么做。在我的应用程序中,用户可以打开各种链接,我已经为其提供了一个带有WebView的Fragment。这些链接中很大一部分是Imgur专辑,但由于某些原因,我的设备或我尝试过的模拟器上的专辑无法正确加载专辑。我已经设置了一个带有单个WebView的应用程序,该应用程序在此显示行为:https://github.com/damien5314/imgur-album-webview。
我在Chrome中设置了WebView调试,并在WebView中以及在启用了移动设备仿真的桌面Chrome上并排加载了页面。在桌面Chrome上,页面在从api.imgur.com收到带有图像列表的响应后加载,然后在页面加载后下载并显示各个图像。在我的设备上的WebView上,在收到Imgur API的响应后,永远不会下载图像。
注意 - 只有Imgur 相册页面给我提问。单个图像加载得很好。
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被混淆了我的网页调试选项是有限的,更不用说我可以在WebView中加载相同的链接在一个类似的应用程序中,所以必须有一些方法使它工作。如果有人在我的代码中看到任何问题让我知道,否则任何有关调试此问题的后续步骤的建议将不胜感激。谢谢!
答案 0 :(得分:6)
嗯,这实际上比原先想象的容易得多。我没有注意到在WebView中加载页面时发生了JavaScript错误,这在Chrome中加载页面时没有发生。
Uncaught TypeError: Cannot read property 'getItem' of null
在跟踪JS时,我发现这是因为使用了window.localStorage。除非启用该设置,否则在WebView中不允许这样做。
mWebView.getSettings().setDomStorageEnabled(true);