我的应用程序显示Android webview中的网页内容。 该网页由第三方团队设计,因此我无法控制设计或源代码。该网页首先显示某种动画,然后刷新实际内容(正常的UI设计)。但是我的webview永远不会超越初始动画。
请注意,我已验证网页是否在同一设备上的浏览器上正确加载。所以网页肯定没有问题。 此外,我在延迟5秒后以语法方式刷新了webview(在桌面浏览器上,网页大约需要1-2秒才能刷新实际内容),这应该是延迟刷新的原因。
现代网页(HTML 5 + CSS3 + JS)是否存在任何已知问题,可能会导致它们无法在Android webview上正确呈现?我能回避什么? 我错过了在Webview上设置任何属性吗?
以下是我的代码片段 -
myWebView = (WebView)v.findViewById(R.id.catalog_view);
WebSettings settings = myWebView.getSettings();
settings.setLoadWithOverviewMode(true);
settings.setUseWideViewPort(true);
settings.setJavaScriptEnabled(true);
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
myWebView.loadUrl("https://www.homehardware.com.au/catalogue/?category=garden-outdoor");
注意:代码中提到的URL是我尝试加载的实际URL。我还尝试过其他一些东西,比如摆弄webview缓存模式,UA字符串等,但没有任何作用。
答案 0 :(得分:0)
关于SO探险家未来参考的问题,答案来自praveen的评论。
诀窍是使用 settings.setDomStorageEnabled(真)
注意:虽然根据我的观点,HTML5成为现代网页所基于的事实标准之一,但默认情况下应在Android网页上启用此设置(因此默认情况下,网页视图的行为与现代浏览器相同)
答案 1 :(得分:0)
下面的两个设置应该可以避免Webview缓存而无需刷新即可更新页面
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
settings.setDomStorageEnabled(true);
答案 2 :(得分:0)
尝试
webView.loadDataWithBaseURL(null, htmlContent, "text/html", "UTF-8", null)