2

我有一个简单的 Android 应用程序,它只是 webviews 的集合。通常在默认的 Android 浏览器或 Chrome 中,用户可以长按图像并将其保存到手机中。

在 web 视图中,用户没有长按选项,但我希望能够提供相同的功能来将图像保存到手机。

这可以通过 javascript 或 jquery 或任何其他方法实现吗?

谢谢。

4

1 回答 1

2

看来您至少有两个(未弃用)选项:

  • getHitTestResult() 参考:链接
  • requestImageRef(Message msg) Ref:链接

对于第一个选项,获取基于当前光标节点的 HitTestResult。如果找到 HTML::a 标记并且锚点具有非 JavaScript URL,则 HitTestResult 类型设置为 SRC_ANCHOR_TYPE 并且 URL 设置在“extra”字段中。如果锚点没有 URL 或者它是 JavaScript URL,则类型将为 UNKNOWN_TYPE,并且 URL 必须通过 requestFocusNodeHref(Message) 异步检索。如果找到 HTML::img 标记,则将 HitTestResult 类型设置为 IMAGE_TYPE,并将 URL 设置在“extra”字段中。SRC_IMAGE_ANCHOR_TYPE 类型表示具有 URL 的锚点,该 URL 具有图像作为子节点。如果找到电话号码,则将 HitTestResult 类型设置为 PHONE_TYPE,并将电话号码设置在 HitTestResult 的“extra”字段中。如果找到地图地址,HitTestResult 类型设置为 GEO_TYPE,地址设置在 HitTestResult 的“extra”字段中。如果找到电子邮件地址,则将 HitTestResult 类型设置为 EMAIL_TYPE,并将电子邮件设置在 HitTestResult 的“extra”字段中。否则,HitTestResult 类型设置为 UNKNOWN_TYPE。

对于第二个选项:

public void requestImageRef (Message msg)

它请求用户最后一次触摸的图像的 URL。msg 将被发送到它的目标,并带有一个表示 URL 作为其对象的字符串

不确定这些选项是否也与“长按”兼容。

您还可以使用 onLoadResource(WebView view, String url) 简单地捕获所有加载的图像资源,构建图像引用列表并下载按钮单击引用的那个。

于 2013-01-22T11:24:14.973 回答