Ответ 1
Почему бы не загрузить весь HTML со стороны приложения? Если вы беспокоитесь, что на этой веб-странице не будет доступа к сети, используйте метод WebView.loadDataWithBaseUrl.
Для встраивания изображений в веб-страницу вы можете использовать данные: схема URI: http://en.wikipedia.org/wiki/Data_URI_scheme
Также вы можете отображать изображения приложений, даже если вы загружаете страницу удаленно. Вы можете использовать WebView.loadUrl( "javascript:...." ) для "отправки" данных изображений через код JavaScript (также используя данные: схема URI).
ИЗМЕНИТЬ.
Во-первых, со стороны 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 MIME type...
"UTF-8", // and encoding
"http://my.site.com/page.html");
Теперь WebView загрузил вашу страницу. Он загружается из локальных ресурсов, но с точки зрения WebView это похоже на загрузку из сети. Он также имеет доступ к сетевым ресурсам и JavaScript-коду (это основное различие между loadData
и loadDataWithBaseUrl
).