Wis*_*erd 5 android android-webview
为什么有些页面没有加载到我的WebView中(但似乎在Chrome中工作正常)?例如:
我已经设置了我的WebView以启用JS.这是我的WebView初始化代码:
webView = (WebView) findViewById(R.id.webview);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setDisplayZoomControls(false);
webView.getSettings().setDomStorageEnabled(true);
webView.setWebViewClient(new WebViewClient());
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
progressBar.setProgress(progress);
if (progress == 100) {
progressBar.setVisibility(View.GONE);
}
else {
progressBar.setVisibility(View.VISIBLE);
}
}
});
webView.loadUrl(url);
Run Code Online (Sandbox Code Playgroud)
我的项目中有一个非常相似的 webview 代码,我只是替换了您提供的网址。
\n\n @Override\n protected void onCreate(Bundle savedInstanceState) {\n super.onCreate(savedInstanceState);\n setContentView(R.layout.activity_user_agreement);\n WebView webView = (WebView) findViewById(R.id.userAgreementView);\n final ProgressWheel progressWheel = (ProgressWheel) findViewById(R.id.progress_bar);\n webView.getSettings().setJavaScriptEnabled(true);\n webView.getSettings().setBuiltInZoomControls(true);\n webView.getSettings().setDisplayZoomControls(false);\n webView.getSettings().setDomStorageEnabled(true);\n //webView.getSettings().setUserAgentString("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");\n Log.v("UA", webView.getSettings().getUserAgentString());\n String url = getIntent().getStringExtra("data"); //Urls provided by other activity\n if (url != null && !url.equals("")) {\n webView.setWebChromeClient(new WebChromeClient() {\n public void onProgressChanged(WebView view, int progress) {\n\n //progress wheel fills here etc.\n // ...\n // ... \n }\n }\n });\n webView.loadUrl(url);\n\n }\n\n}\nRun Code Online (Sandbox Code Playgroud)\n\nhttp://onlinelibrary.wiley.com/doi/10.1002/art.39115/pdf 这个加载就像网络视图中的魅力一样,没有任何故障,也没有错误的行为。
\n\n然后我尝试了这个http://www.ajpmonline.org/article/S0749-3797(14)00628-X/fulltext,当webview完成加载时,一个新的本机Chrome活动立即启动并加载页面的移动版本一项单独的活动。
\n\n我使用桌面 Chrome 检查了网站的行为,当我使用 Android 用户代理字符串发出 http 请求时,结果会执行以下操作。
\n\n然后我决定将用户代理字符串模仿为桌面浏览器。我从http://www.useragentstring.com/pages/Chrome/中选择了一个 UA 字符串,并在 loadUrl 方法之前将其设置为这样,瞧\xc3\xa0!
\n\n webView.getSettings().setUserAgentString("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");\n Log.v("UA", webView.getSettings().getUserAgentString());\nRun Code Online (Sandbox Code Playgroud)\n\n这可能是一种边缘情况,根据您正在加载的 URL,行为可能会发生变化,但您可以使用正确的用户代理字符串强制加载网站的桌面版本。
\n| 归档时间: |
|
| 查看次数: |
3901 次 |
| 最近记录: |