2012-09-06 62 views
5

我有一个webView。 WebView显示HTML文本,图像,按钮等。
我想做几件事。

1)该用户无法在webView中选择文本

2)点击和长按按钮的行为相同。android webview内容不可选

我为解决我的问题,接下来的事情:所有的 首先,我加入到HTML页面风格:

body { 
    ... 
    -webkit-user-select: none; 
    -webkit-touch-callout: none; 
    ... 
} 

但它并没有帮助我。这个解决方案并不适用于所有的机器人。
所以我试图添加触摸监听器到webView。

代码监听:

webView.setOnTouchListener(new OnTouchListener() { 

    private float prevX; 
    private float prevY; 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 

     boolean handled = true; 
     if (MotionEvent.ACTION_DOWN == event.getAction()) { 
      prevX = event.getX(); 
      prevY = event.getY(); 
     } else if (MotionEvent.ACTION_UP == event.getAction()) { 
      if (Math.abs(event.getX() - prevX) < 50 
        && Math.abs(event.getY() - prevY) < 50) { 
       handled = (event.getEventTime() - event 
         .getDownTime()) > 200; 
      } 
     } 

     Log.d("-------------------------------------------------", ""+handled); 

     return handled; 
    } 

}); 

但是,这也不能工作,可能是我做了什么了吗? 之后,我尝试添加长按听众:

webView.setOnLongClickListener(new OnLongClickListener() { 

    @Override 
    public boolean onLongClick(View v) { 
     v.performClick(); 
     return true; 
    } 
}); 

该解决方案只解决了第一个问题。

那么,我哪里出错了?

+0

你想让你的webview不应该点击或其他任何其他?请详细说明... –

+0

我希望webview应该是可点击的,但是html页面的某些部分不应该是可点击的。我不希望该用户可以在html页面中复制部分文本。但在html页面中,我有输入和按钮... – yugico

+0

感谢修正语法错误... – yugico

回答

0

尝试使用addJavascriptInterface();的WebView。创建一个活动的内部类。该类是android和你的Jscript之间的接口。你必须为此使用Jscript。