我有一个简单的Android应用,它只是Web视图的集合。通常,在默认的Android浏览器或Chrome浏览器中,用户可以长按图片并将其保存到手机中。
在Web视图中,用户没有长按选项,但我希望能够提供相同的功能将图像保存到手机中。
是否可以通过javascript或jquery或任何其他方法来实现?
谢谢。
最佳答案
看来您至少有两个(不推荐使用)选项:
getHitTestResult()参考:link
requestImageRef(Message msg)参考:link
对于第一个选项,基于当前光标节点获取HitTestResult。如果找到HTML :: a标记,并且锚点具有非JavaScript URL,则将HitTestResult类型设置为SRC_ANCHOR_TYPE,并在“其他”字段中设置URL。如果锚点没有URL或JavaScript URL,则类型将为UNKNOWN_TYPE,并且必须通过requestFocusNodeHref(Message)异步检索URL。如果找到HTML :: img标记,则将HitTestResult类型设置为IMAGE_TYPE,并在“其他”字段中设置URL。 SRC_IMAGE_ANCHOR_TYPE的类型表示锚点,其URL以图像作为子节点。如果找到电话号码,则将HitTestResult类型设置为PHONE_TYPE,并在HitTestResult的“其他”字段中设置电话号码。如果找到了地图地址,则将HitTestResult类型设置为GEO_TYPE,并在HitTestResult的“额外”字段中设置地址。如果找到电子邮件地址,则将HitTestResult类型设置为EMAIL_TYPE,并在HitTestResult的“其他”字段中设置电子邮件。否则,将HitTestResult类型设置为UNKNOWN_TYPE。
对于第二种选择:
public void requestImageRef (Message msg)
它请求用户最后触摸的图像的URL。 msg将使用表示URL的String作为其对象发送到其目标
不过也不确定这些选项是否与“长按”兼容。
您也可以使用onLoadResource(WebView视图,String url)捕获所有已加载的图像资源,构建图像引用列表并下载按钮单击引用的图像资源。