我们可以根据 Android API 文档检测以下 HTML 元素。
int ANCHOR_TYPE HitTestResult for hitting a HTML::a tag
int EDIT_TEXT_TYPE HitTestResult for hitting an edit text area
int EMAIL_TYPE HitTestResult for hitting an email address
int GEO_TYPE HitTestResult for hitting a map address
int IMAGE_ANCHOR_TYPE HitTestResult for hitting a HTML::a tag which contains HTML::img
int IMAGE_TYPE HitTestResult for hitting an HTML::img tag
int PHONE_TYPE HitTestResult for hitting a phone number
int SRC_ANCHOR_TYPE HitTestResult for hitting a HTML::a tag with src=http
int SRC_IMAGE_ANCHOR_TYPE HitTestResult for hitting a HTML::a tag with src=http + HTML::img
int UNKNOWN_TYPE Default HitTestResult, where the target is unknown
我认为您将能够使用 WebView 的 setOnTouchListener 函数获取所有事件。
WebView 有名为的内部类命中测试结果 http://developer.android.com/reference/android/webkit/WebView.HitTestResult.html。
HitTestResult 类将帮助我们找到当用户单击 WebView 时按下的 HTML 元素。
命中测试结果 http://developer.android.com/reference/android/webkit/WebView.HitTestResult.html类只有两个方法。
- getExtra() :它返回字符串。字符串包含用户点击的 HTML 元素
- getType() :它返回整数。它用于识别用户点击了哪个 HTML 元素。
你可以这样做:
wv.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
WebView.HitTestResult hr = ((WebView)v).getHitTestResult();
Log.i(TAG, "getExtra = "+ hr.getExtra() + "\t\t Type=" + hr.getType());
return false;
}
});
Edited :参考完美答案:在Android WebView中通过javascript检测HTML按钮的点击 https://stackoverflow.com/questions/4065312/detect-click-on-html-button-through-javascript-in-android-webview