我有一個非常類似的webview代碼在我的項目上,我剛剛取代了你提供的網址。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_agreement);
WebView webView = (WebView) findViewById(R.id.userAgreementView);
final ProgressWheel progressWheel = (ProgressWheel) findViewById(R.id.progress_bar);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setDisplayZoomControls(false);
webView.getSettings().setDomStorageEnabled(true);
//webView.getSettings().setUserAgentString("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");
Log.v("UA", webView.getSettings().getUserAgentString());
String url = getIntent().getStringExtra("data"); //Urls provided by other activity
if (url != null && !url.equals("")) {
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
//progress wheel fills here etc.
// ...
// ...
}
}
});
webView.loadUrl(url);
}
}
http://onlinelibrary.wiley.com/doi/10.1002/art.39115/pdf這個人在webview中像一個魅力加載沒有毛刺和沒有錯誤的行爲。
然後,我試過這一個http://www.ajpmonline.org/article/S0749-3797(14)00628-X/fulltext,當webview完成加載新的本機Chrome活動時立即啓動並在單獨的活動中加載頁面的移動版本。
我用我的桌面Chrome檢查了網站的行爲,當我用Android用戶代理字符串發出http請求時,事實證明我做了以下事情。
- 返回302狀態碼,重定向到http://www.ajpmonline.org/action/mobileChoice?originalRequestUri=%2Farticle%2FS0749-3797%2814%2900628-X%2Ffulltext&userInterface=mobile
- 設置一個名爲MobileUI cookie,並重定向到原來的頁面與302個狀態碼。
- 根據MobileUI cookie加載頁面的移動版本。那時網站可能會運行一個JavaScript代碼來彈出一個新窗口,它解釋了我的Galaxy S4 mini上的行爲。
然後我決定將用戶代理字符串模仿爲桌面瀏覽器。我從http://www.useragentstring.com/pages/Chrome/中挑選了一個UA字符串,並在loadUrl方法之前將它設置爲這樣,並且聲音!
webView.getSettings().setUserAgentString("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");
Log.v("UA", webView.getSettings().getUserAgentString());
這可能是一個邊緣的情況,並根據您加載行爲可能會改變URL,但你可以強制使用正確的用戶代理字符串來加載網站的桌面版本。
不幸的是,我不能將用戶代理設置爲桌面瀏覽器,因爲我想加載移動頁面。至於第一個鏈接,我現在意識到我已經在嘗試URL之前設置了一個登錄cookie。WebView在訪問URL源處的實際內容時只會加載問題,而您沒有看到該內容,因爲您尚未登錄。讓我看看是否可以找到更好的示例。 – 2015-04-06 16:17:22
在這種情況下,您可以更改導致問題的網頁內容。 http://stackoverflow.com/a/8274881/3399234該答案顯示瞭如何去做,但肯定這不是一個合理和有效的解決方案。 – Ugur 2015-04-06 20:02:52
你可以嘗試使用這個網址http://onlinelibrary.wiley.com/doi/10.1002/iid3.28/epdf – 2015-04-08 17:57:09