我有一種情況,我試圖使用loadData
在webview
中顯示用戶生成的HTML。我的代碼是這樣的:Android WebView中未顯示的圖像
String content = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" +
"<html><head>" +
"<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />" +
"</head><body>";
content += htmlStr + "</body></html>";
wv.loadData(content, "text/html", "UTF-8");
它在大多數情況下工作得很好,但我無法獲得某些類型的圖像顯示。在我的大部分測試中,插入<img src="..."/>
標籤的效果很好,但我發現Photobucket上的圖片鏈接根本不會顯示;我在裏面找到一個帶有問號的小盒子,而不是圖像。
單擊Photobucket上的圖像鏈接可以將您帶到可在其網站上查看圖像的頁面,而不僅僅是原始圖像本身。我有一種感覺,這個問題與此有關。我懷疑它可能是一個「Referer」問題,也可能是用戶代理,或者是這種性質的東西,但是我不能讓我的生活得到正確的顯示。
我已經嘗試切換到loadDataWithBaseURL
並提供BaseURL
(因爲我相信這將用作引用者url),但這沒有什麼區別。我也嘗試使用loadUrl("http://photobucket..."
來代替,並提供了一個HashMap
以及手動設置的Referer頭文件,但那也不起作用。實際上,切換到loadUrl
使其立即重定向到設備的瀏覽器以加載Photobucket頁面。我試圖提供一個自定義WebViewClient
並覆蓋shouldOverrideUrlLoading
,但最好的辦法是在WebView
內顯示完整的Photobucket頁面。
我確定這不是Photobucket的特定問題,恰好是我在測試時發現此問題的網站。
我真的很想找出一些方法來處理這種情況,以便它能夠正常工作,但我一直都沒有找到任何有用的方向,因此或在互聯網上。有沒有人有任何想法?