Android WebView 加載遠程html出現空白頁的解決方案


一. 簡單使用webView加載遠程url

WebView webView = (WebView) dialog.findViewById(R.id.tnc_content);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient())
webView.loadUrl("https://XX.XX.com/*.html");

二. 問題描述:

webView.loadUrl("https://xx.xx.xx/...")加載的是空白頁

1. 遠程url是https協議, 證書問題,需重寫onReceivedSslError方法

webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
        handler.proceed();
        super.onReceivedSslError(view, handler, error);
        Log.d(TAG, "onReceivedSslError: "); //如果是證書問題,會打印出此條log到console
    }
});

2. 遠程url是https協議,圖片資源是http協議時。在Android 5.0之后,WebView默認不允許Https+Http的混合使用方式,所以當Url是Https的,圖片資源是Http時,導致頁面加載失敗。需設置 MixedContentMode屬性
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
 webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
3. DOM Storage API導致的問題,android默認不開啟DOM Storage
webView.getSettings().setDomStorageEnabled(true);



 
作者:Susie 
出處:https://www.cnblogs.com/zwting/p/9934062.html   
歡迎轉載,但還請尊重勞動果實,保留此段聲明並注明原文鏈接。


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM