从我的 Android 应用程序中的网页获取点击事件

2024-03-23

我正在创建一个带有按钮的示例网页。该网页正在 Android 中使用 webview 进行调用。

现在,当我单击网页上的按钮(即 html 按钮)时。我应该能够在 Android 中执行一些代码..

如何进行?

public class web extends Activity {
    WebView mWebView;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webdisplay);

        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.loadUrl("http://localhost/test.html");
        valid = new Button(ctx);
        valid.setOnClickListener(this);
        refuse = new Button(ctx);
        refuse.setOnClickListener(this);
    }
}

我们可以根据 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类只有两个方法。

  1. getExtra() :它返回字符串。字符串包含用户点击的 HTML 元素
  2. 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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从我的 Android 应用程序中的网页获取点击事件 的相关文章

随机推荐