webview.loadData(htmlString, "text/html", "UTF-8") 載入包含 <img src="file:///android_asset/xxx.png"> 的 HTML 時,圖片不顯示;但 webview.loadUrl("file:///android_asset/xxx.png") 可單獨顯示圖片。
loadData 產生的頁面屬於 about:blank 來源,**不允許訪問 file:// 協議資源**(同源策略限制)。
assets/page.html:<html>
<body>
<img src="large_image.png" width="100%"/>
</body>
</html>
loadUrl 載入該 HTML 文件:webview.loadUrl("file:///android_asset/page.html");
File htmlFile = new File(getCacheDir(), "temp.html");
FileUtils.writeStringToFile(htmlFile, htmlContent, "UTF-8");
webview.loadUrl("file://" + htmlFile.getAbsolutePath());
file:///android_asset/ 協議訪問。loadUrl 建立正確的文件來源上下文,允許加載同目錄下的圖片。/data/data/pkg/files/),需用 ContentProvider 暴露 URI 給 WebView。