image - 如何将扩展文件中的图像加载到webview中

标签 image webview apk-expansion-files

在我们的应用程序中,我们有 html 页面,这些页面从 asset 目录加载到 webview 中。这些依次从同一位置加载 jpg 图像。由于 Google Play 的应用程序大小限制为 50mg,我需要将 jpg 移动到扩展文件。出于安全原因,我们不想移动 html 页面。谁能告诉我如何将扩展文件中的 jpg 加载到 html 网页中?

谢谢

克里斯汀

还有一些想法:

此链接发布了类似的问题,但仍未得到解答:

Using images from apk expansion file in android webview

此链接确实有答案,但它们似乎不完整,至少满足我的需要:

How we can use images from APK main expansion file?

我认为扩展文件的 URI 接口(interface)(APEZProvider 为 ExpansionFile 创建 ContentProvider,请参阅 http://developer.android.com/guide/google/play/expansion-files.html#ZipLib )可能是可行的方法,但我不清楚如何将信息获取到 Javascript。目前我们正在使用:

我已经尝试重写 ShouldInterceptRequest,如 webview shouldinterceptrequest example 中的建议。 , 期望在图像即将加载时得到回调,以便我可以修改 url,但 shouldInterceptRequest 不会被调用。

那么,有人知道如何拦截 jpg 的加载并将 url 重定向到从扩展文件的 ContentProvider 获取的 URL 吗?

除了解压缩扩展文件之外,还有其他建议吗?任何帮助将非常感激。我花了几天时间研究这个问题

最佳答案

为了其他在这个问题上苦苦挣扎的人的利益,我有一个解决方案,至少对于 API 11 及更高版本。我发现 ShouldInterceptRequest 实际上只有在 webview.loadUrl(assetFile) 在 Assets 文件夹中找不到该文件时才会被调用。也许这应该是显而易见的,但我还没有在任何地方看到它的记录(我以为我已经尝试删除该文件,但一定做了其他错误的事情) n shouldInterceptRequest 如下所示:

    @Override
    public WebResourceResponse shouldInterceptRequest(WebView view, String url)
    {
        String fileName = url.substring(assetPrefix.length());

        InputStream inputStream = expansionFile.getInputStream(fileName);

        if (url.endsWith("jpg") || url.endsWith("png"))
            return new WebResourceResponse("image/*", "base64", inputStream);

        return super.shouldInterceptRequest(view, url);
    }

现在,如果有人对 API 10 的解决方案有想法,我们仍然会感激不已。我看到了一个覆盖 shouldOverrideUrlLoading 的建议(我们正在为其他目的这样做),但是当从 html 文件加载图像时,只有当前进到一个全新的网页时,它似乎不会被调用

关于image - 如何将扩展文件中的图像加载到webview中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13073594/

相关文章:

android - 无法读取/访问 APK 扩展 (.obb) 文件中的视频文件。它抛出空指针异常

iphone - 存储图像的最佳位置是什么

java - 动态添加jar中的图像

java - 图像未在 Java 应用程序中显示

Android: WebView 触摸事件监听器

android - 挂载 .obb 时未调用 OnObbStateChangeListener

android - 如何在Play商店中发布产品口味演示与完整版本

ios - Cordova 写入 WWW 目录 (iOS)

swift - 在 webview 中打印 pdf 文件

Android ICS Webview textarea 打字慢