经常看见别人的App里webview长按图片就能显示大图,点击号码可以直接找电话,那这是怎么实现的呢
WebView的getHitTestResult()的函数可以获取点击页面元素的类型,然后,我们再根据类型进行相应的处理
1 HitTestResult result = ((WebView) v).getHitTestResult()
HitTestResult 类
方法 | 描述 |
getType() | 获取所选中目标的类型,可以是图片,超链接,邮件,电话等等 |
getExtra() | 获取额外的信息 |
具体的使用:
mWebView.setOnLongClickListener(new OnLongClickListener() {
public boolean onLongClick(View v) {
HitTestResult result = ((WebView) v).getHitTestResult();
if (null == result)
return false;
int type = result.getType();
switch (type) {
case WebView.HitTestResult.EDIT_TEXT_TYPE: // 选中的文字类型
break;
case WebView.HitTestResult.PHONE_TYPE: // 处理拨号
break;
case WebView.HitTestResult.EMAIL_TYPE: // 处理Email
break;
case WebView.HitTestResult.GEO_TYPE: // 地图类型
break;
case WebView.HitTestResult.SRC_ANCHOR_TYPE: // 超链接
break;
case WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE: // 带有链接的图片类型
case WebView.HitTestResult.IMAGE_TYPE: // 处理长按图片的菜单项 }
return true;
case WebView.HitTestResult.UNKNOWN_TYPE: //未知
break;
}
return false;
}
});
下面有所有枚举类型定义:
类型名 | 意义 |
WebView.HitTestResult.UNKNOWN_TYPE | 未知类型 |
WebView.HitTestResult.PHONE_TYPE | 电话类型 |
WebView.HitTestResult.EMAIL_TYPE | 电子邮件类型 |
WebView.HitTestResult.GEO_TYPE | 地图类型 |
WebView.HitTestResult.SRC_ANCHOR_TYPE | 超链接类型 |
WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE | 带有链接的图片类型 |
WebView.HitTestResult.IMAGE_TYPE | 单纯的图片类型 |
WebView.HitTestResult.EDIT_TEXT_TYPE | 选中的文字类型
|
原地址:http://www.cnblogs.com/classloader/p/5302784.html