1. 程式人生 > >關於webview圖片無法載入的問題?

關於webview圖片無法載入的問題?

關於webview網頁中的圖片無法載入的問題我個人總結了兩種情況:
1.由於android系統自身版本不同引起的問題。

在說明情況之前我們先看一個api
就圖中的方法做簡單說明
上面的圖片中的解釋大概是說:
mWebView.getSettings().getLoadsImagesAutomatically()方法的返回值為true時webview採取阻塞的方式載入網路圖片,反之如果你設定的值為false,圖片將自動進行載入,並且使用這個方法只是為了減少頻寬。

下面具體說一下具體的原因及其解決辦法:

原因:由於在android4.4以前為了減少頻寬採用阻塞式載入網頁圖片資源,這是需要將上圖中的方法的引數設定為true,但是在更高的版本上面由於將 引數設定為true反而導致圖片無法載入。要知道具體的原因大家可以看一下更高版本的原始碼的具體實現,我這邊沒有 原始碼就不做解釋了。

解決辦法:需要將上面方法的引數設定為false。

2.由於 Internet Explorer 8.0 以上,Firefox 3.5 以上,Chrome 4.0 以上都是支援Html5 中的 DOM Storage儲存機制 ,導致我們通過webview載入的部分html5頁面中的部分圖片資源載入失敗。

同樣在說明情況之前我們先看一個api:
原始碼
方法的意思是說是否使用DOM storage API,那麼什麼是DOM storage呢?他是web端採用Html5程式設計時的一種儲存機制,和之前的Cookies儲存有很多相似的地方,但是比它更優秀。具體的介紹看下面的連結:淺談 HTML5 的 DOM Storage 機制

,其實我們只需稍作了解就可以。
下面我們看一下解決辦法:
原因:由於我們要載入的頁面中才用了這種儲存機制,而且客戶端預設為false,導致部分圖片載入失敗,所以需要我們手動的去設定該法,並傳參為true。

解決辦法:
很簡單隻要將上面的方法的引數設定為true就可以了