【问题标题】:How to detect single Tap on WebView如何检测 WebView 上的单击
【发布时间】:2013-11-16 18:54:42
【问题描述】:

如何检测WebView 上的单击。我将WebView 显示为ViewPager 页面。所以,我不能使用OnTouchListener。而OnClickListener 不适用于WebView

【问题讨论】:

    标签: android onclick android-webview


    【解决方案1】:

    如果您有获取事件的链接,您可以将类似的内容与 shouldOverrideUrlLoading 一起使用:

    webView.setWebViewClient(new WebViewClient() {
    
                @Override
                public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                    handler.proceed();
                }
    
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    try {
                        String host = null;
                        if (null != url && null != (host = Uri.parse(url).getHost())) {
                            if (host.equals("myclikableUrl")) {
                                clickEvent();
                            } 
    
                            return true;
                        } else {
    
                            return false;
                        }
                    } catch (Exception e) {
                        return false;
                    }
                }.....
    });
    

    【讨论】:

    • 不,我在WebView 中没有任何链接。我想检测整个WebView的点击
    • 我不知道你的视图层次结构,但你不能在 ViewPager 的子视图上设置一个 onClickListener 吗?(我猜 childViews 是网页?)它可能有效。
    • 我有一个 ViewPager,其中有几个页面是 WebView。我想检测 WebViews 上的单击(或单击)。如果我在 WebView 上处理 Touch,它不允许我滑动 ViewPager 页面。 OnClickListsner 不起作用。此外,WebView 可以水平和垂直滚动。
    【解决方案2】:

    尝试创建您自己的扩展WebView 的类,并在此处覆盖dispatchTouchEvent(MotionEvent ev)。您也可以添加GestureDetector 并单击webview http://developer.android.com/training/gestures/detector.html

    【讨论】:

      猜你喜欢
      • 2017-03-14
      • 1970-01-01
      • 2012-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-29
      • 2018-04-16
      相关资源
      最近更新 更多