当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《在我的Android应用程序中从网页获取点击事件》经验,为你挑选了1个好方法。

我正在创建一个带按钮的示例网页.这个网页使用webview在Android中调用.

现在当我点击网页上的按钮(即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);
    }
}

Kartik Domad.. 26

我们可以根据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具有名为HitTestResult的内部类.HitTestResult类将帮助我们找到用户单击WebView时按下的HTML元素.

HitTestResult类只有两个方法.

    getExtra():返回String.String具有由用户单击的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;
        }
    });

编辑: 参考完美答案: 在Android WebView中通过javascript检测点击HTML按钮



1> Kartik Domad..:

我们可以根据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具有名为HitTestResult的内部类.HitTestResult类将帮助我们找到用户单击WebView时按下的HTML元素.

HitTestResult类只有两个方法.

    getExtra():返回String.String具有由用户单击的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;
        }
    });

编辑: 参考完美答案: 在Android WebView中通过javascript检测点击HTML按钮

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有