我试图使用WebView.loadUrl(string)显示一个png文件,其中png文件存储在Android中的zip APK扩展文件中。展开文件的路径是:
Environment.getExternalStorageDirectory()+"/Android/obb/com.example.myapp/main.1.com.example.myapp.obb";
因此,我使用以下方法显示文件mypicture.png
String url = "jar:file:/" + Environment.getExternalStorageDirectory()+"/Android/obb/com.example.myapp/main.1.com.example.myapp.obb!/mypicture.png";
WebView wv;
... // code to setup the webview
wv.loadUrl(url);
我在链接处得到错误的网页没有可用的。
jar:file://storage/sdcard0/Android/obb/com.example.myapp/main.1.com.example.myapp.obb!/mypicture.png
我知道我的扩展文件在那里,并且包含png文件,因为我有一些测试代码从扩展文件中提取png文件。当我指向提取的png文件wv.loadUrl(extracted_png_location)时,()将正确显示png文件。我只是无法让它显示png文件,即在中,即zip扩展文件。
那么,压缩文件中的png文件的路径一定是错误的?或者可以直接在zip中的文件上使用loadUrl()吗?
发布于 2013-11-05 16:01:33
使用乔布工具打包扩展文件并使用StorageManager挂载它是一种很好的选择。在此之后,扩展文件中的文件应该可以作为文件系统中的常规文件访问。在这种情况下,不需要解压展开文件。
发布于 2013-09-26 09:36:23
我也有同样的问题。我的webview内容太大,无法在应用程序中交付,但是从扩展下载开始的压缩无法通过webview访问,因为它需要直接路径。
使用google的Zip是没有选择的,因为它只返回流,而webview不适用于流。
从路径加载数据的方法似乎是本机实现的,不可能覆盖任何内容。
解压缩是没有选择的,因为您不能删除zip文件。这个应用程序会注意到它,并开始重新下载它,所以无论如何你都需要保留它。
唯一的解决方案是编写自己的更新程序,它直接下载内容并解压缩。
https://stackoverflow.com/questions/12220639
复制相似问题