为什么不从应用程序端加载所有 HTML?如果您担心该网页无法访问网络 - 请使用 WebView.loadDataWithBaseUrl 方法。
要将图像嵌入网页,您可以使用 data:URI 方案:http://en.wikipedia.org/wiki/Data_URI_scheme http://en.wikipedia.org/wiki/Data_URI_scheme
即使页面是远程加载的,您也可以映射应用程序图像。您可以使用 WebView.loadUrl("javascript:....") 通过 JavaScript 代码“发送”图像数据(也使用 data:URI 方案)。
EDIT.
首先,在 HTML 端,嵌入图像的示例将如下所示:
<html>
<head>
<style>
#myImage { background-image: url('data:image/png;base64,iVBORw0KG.....'); width: 50px; height: 50px;}
</style>
</head>
<body>
<div id="myImage"></div>
</body>
</html>
当,如果你想将这个页面存储在应用程序端,你可以将它存储在某个地方(字符串资源、资产文件夹)并在获取它时。
String pageResource = // get it somehow
WebView myWebView;
myWebView.loadDataWithBaseUrl(
"http://my.site.com", // The base url
pageResource, // page content to load...
"text/html", // it's MIME type...
"UTF-8", // and encoding
"http://my.site.com/page.html");
现在 WebView 已加载您的页面。它是从本地资源加载的,但从 WebView 的角度来看,它就像是从网络加载的。它也可以访问网络资源和在这里工作的 JavaScript 代码(这是两者之间的主要区别loadData
and loadDataWithBaseUrl
).