WebView鏈接為https,內(nèi)容圖片為http,圖片不能正常顯示

WebView鏈接為https,內(nèi)容圖片為http,圖片不能正常顯示

Android5.0及以上系統(tǒng),當(dāng)WebView加載的鏈接為https開頭,但是鏈接里面的內(nèi)容,比如圖片為http鏈接,這時(shí)候,圖片就不能正常加載(加載不出來)。

原因:

Android5.0開始,WebView默認(rèn)不支持同時(shí)加載Https和Http混合模式。

解決方案:

在webview加載頁面之前,設(shè)置加載模式為MIXED_CONTENT_ALWAYS_ALLOW,代碼如下


if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
        

如果以上還不能解決,可以嘗試設(shè)置WebView接受所有網(wǎng)站的證書,當(dāng)然這會(huì)帶來安全問題,請謹(jǐn)慎使用

在認(rèn)證證書不被Android所接受的情況下,我們可以通過設(shè)置重寫WebViewClient的onReceivedSslError方法在其中設(shè)置接受所有網(wǎng)站的證書來解決,具體代碼如下:


webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onReceivedSslError(WebView view,
            SslErrorHandler handler, SslError error) {
        // TODO Auto-generated method stub
        // super.onReceivedSslError(view, handler, error);// 這里一定要去除,否則設(shè)置無效
        // handler.cancel();// Android默認(rèn)的處理方式
        handler.proceed();// 接受所有網(wǎng)站的證書
        // handleMessage(Message msg);// 進(jìn)行其他處理
    }
});

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言:只要涉及到https,大家都會(huì)第一時(shí)間想到證書驗(yàn)證。當(dāng)然,這是沒問題的。如果有要求,這個(gè)證書驗(yàn)證是必須的。一...
    夜封雪閱讀 41,491評論 3 29
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,351評論 25 708
  • WebView·開車指南 2016-08-31BugDev 北京市東城區(qū)首席Bug布道師開山之作,一整月交通事故血...
    53c021c38a1d閱讀 938評論 0 1
  • 今天是父親節(jié),給爸爸打了個(gè)電話。電話接通后對面?zhèn)鱽淼牟皇瞧饺绽锔赣H與我調(diào)侃似的對話,而是嚴(yán)肅的聲音。我感到有些不對...
    沐微心語muv閱讀 153評論 0 1
  • 向著天空起飛的翅膀 羽毛撒在路途遠(yuǎn)方 駕游的仙人看起來總不像個(gè)神仙 胡亂吟唱的詩人 沿著羽毛的痕跡 流傳千年歌頌的...
    淺言物閱讀 979評論 0 0

友情鏈接更多精彩內(nèi)容