獲取Android webview的點擊元素


經常看見別人的App里webview長按圖片就能顯示大圖,點擊號碼可以直接找電話,那這是怎么實現的呢

WebView的getHitTestResult()的函數可以獲取點擊頁面元素的類型,然后,我們再根據類型進行相應的處理

1 HitTestResult result = ((WebView) v).getHitTestResult()
HitTestResult 類
方法 描述
getType() 獲取所選中目標的類型,可以是圖片,超鏈接,郵件,電話等等
getExtra() 獲取額外的信息

 

 

 

 

 

具體的使用:

 

 1 mWebView.setOnLongClickListener(new OnLongClickListener() {
 2 
 3             public boolean onLongClick(View v) {
 4                 HitTestResult result = ((WebView) v).getHitTestResult();
 5                 if (null == result)
 6                     return false;
 7                 int type = result.getType();
 8                 switch (type) {
 9                 case WebView.HitTestResult.EDIT_TEXT_TYPE: // 選中的文字類型
10                     break;
11                 case WebView.HitTestResult.PHONE_TYPE: // 處理撥號
12                     break;
13                 case WebView.HitTestResult.EMAIL_TYPE: // 處理Email
14                     break;
15                 case WebView.HitTestResult.GEO_TYPE: //  地圖類型
16                     break;
17                 case WebView.HitTestResult.SRC_ANCHOR_TYPE: // 超鏈接
18                     break;
19                 case WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE: // 帶有鏈接的圖片類型
20                 case WebView.HitTestResult.IMAGE_TYPE: // 處理長按圖片的菜單項 }
21                     return true;
22                 case WebView.HitTestResult.UNKNOWN_TYPE: //未知
23                     break;
24                 }
25                 return false;
26             }
27         });

 

 

 

下面有所有枚舉類型定義:

  類型名

  意義

  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

  選中的文字類型

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM