【问题标题】:Get all images from a WebView in Android从 Android 中的 WebView 获取所有图像
【发布时间】:2013-11-22 19:09:25
【问题描述】:

在 Android WebView 中,我想显示网站并将包含这些网站的所有图像的完整 HTML 下载到设备的存储中。

由于WebView 下载页面的所有资产以便能够显示它,如果我在WebView 中加载页面然后再次下载 HTML 和图像,那将是多余的工作,对吧?

所以我认为您可以访问WebView 下载的内容并将它们复制到设备的存储中。这可能吗?

根据this page,可以设置JavaScript接口,然后像这样调用一些JavaScript语句:

webView.loadUrl("javascript:doSomething()");

所以如果我只使用 JavaScript 的 document.innerHTMLdocument.getElementById('theID').innerHTML,我可以获得页面的 HTML。

对于图像,有没有比使用 JavaScript 更简单的解决方案?问题是我不仅想要 URL,还想要加载的资源。 WebView 确实已经下载了所有资产,所以问题是它是否以某种方式公开了对它们的访问权限。

this question 中所述,似乎可以使用上下文菜单事件获取图像。 (Maybe even background images.) 但是有没有一种不需要用户操作并且批量保存所有图像的解决方案,最好不要再次下载它们?

【问题讨论】:

    标签: android android-webview


    【解决方案1】:

    简而言之:没有。没有 API 可以从 Java 的 WebView 访问下载的资源。您需要推出自己的解决方案。

    在图像的情况下,我能想到的避免重新下载资源的唯一方法是编写一些 javascript,将图像加载到 <canvas> 元素中后复制图像,然后将字节读回为数据 URL。然后,您可以从该数据 URL 在 Java 端重新创建图像(通过 WebView 中的 JavaScript 接口将其传递给 Java)并将其保存到磁盘或以其他方式使用它。

    这些链接可能会对您有所帮助:

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    相关资源
    最近更新 更多