我正在尝试使用类似
的WebView从Android扩展文件(.obb)加载我的HTML文件 String prompt = "";
WebView webview = (WebView) rootView.findViewById(R.id.webview);
try {
InputStream html = getAssetFileDescriptor("www/" + mResult.getTitle() + ".html")
.createInputStream();
byte[] b = new byte[html.available()];
html.read(b);
prompt = new String(b);
html.close();
} catch (IOException e) {
Log.e("Webview", "Couldn't open webpage");
}
webview.loadData(prompt, "text/html", "utf-8");
* getAssetFileDescriptor返回ZipResourceFile函数读取的InputStream(Zip文件库)
它成功地将HTML加载到Webview中,但HTML中的所有图像都没有出现。
我猜是因为它无法通过img标签访问图像文件。
例如,我的html文件包含img标签,如
<img src="./image1.jpg" />
相对路径似乎不起作用,因为html和图像文件被压缩为obb文件。
我该如何解决?
答案 0 :(得分:1)
您可以使用StorageManager安装OBB文件:
StorageManager storageManager = (StorageManager)app.getSystemService(Context.STORAGE_SERVICE);
boolean queued = storageManager.mountObb(<path>, null, new OnObbStateChangeListsner() {...});
然后,您可以使用此路径构建文件的路径:返回的路径是OBB的根目录:
storageManager.getMountedObbPath(...) + "/image1.jpg";
用于加载图片的路径
<img src="your_path" />