2013-09-25 87 views
2

晕个家伙!单击的Android webview

我的android应用程序有一个web视图链接一个网页,假设“google.com”。我想要做的一件事是当用户点击“搜索”时,我的应用程序会为“搜索”敬酒。并且当用户点击“邮件”时将会吐司邮件。

我知道我可以添加javascript到html来处理onClick事件,如果该网站是我的。但情况是该网站是一个公共网站。有没有解决方法?

而且它也可以让我的应用程序使用的Web视图内的数据? 我正在学习REST和Jsoup。

谢谢!

回答

0

愿这可以帮助您:

好友你不能在HTML代码安卓otherthan写的onClick但你可以在你的Webview对象实施onTouchListener获得点击整个的WebView的WebView的内部对象的点击并重写你的onTouch()方法是这样的:

@Override 
    public boolean onTouch(View v, MotionEvent event) { 
     // TODO Auto-generated method stub 

     if (v.getId() == R.id.my_WebView && event.getAction() == MotionEvent.ACTION_DOWN){ 

       // write your code here 
      } 


     return false; 
    } 
+0

因此,当我在google.com上点击搜索时,不会显示搜索吗?无论如何非常感谢你! :) – Kennett

+0

欢迎好友... –

2

您可以通过onTouchListener实现一个onClickListener:

webView.setOnTouchListener(new View.OnTouchListener() { 

     public final static int FINGER_RELEASED = 0; 
     public final static int FINGER_TOUCHED = 1; 
     public final static int FINGER_DRAGGING = 2; 
     public final static int FINGER_UNDEFINED = 3; 

     private int fingerState = FINGER_RELEASED; 


     @Override 
     public boolean onTouch(View view, MotionEvent motionEvent) { 

      switch (motionEvent.getAction()) { 

       case MotionEvent.ACTION_DOWN: 
        if (fingerState == FINGER_RELEASED) fingerState = FINGER_TOUCHED; 
        else fingerState = FINGER_UNDEFINED; 
        break; 

       case MotionEvent.ACTION_UP: 
        if(fingerState != FINGER_DRAGGING) { 
         fingerState = FINGER_RELEASED; 

         // Your onClick codes 

        } 
        else if (fingerState == FINGER_DRAGGING) fingerState = FINGER_RELEASED; 
        else fingerState = FINGER_UNDEFINED; 
        break; 

       case MotionEvent.ACTION_MOVE: 
        if (fingerState == FINGER_TOUCHED || fingerState == FINGER_DRAGGING) fingerState = FINGER_DRAGGING; 
        else fingerState = FINGER_UNDEFINED; 
        break; 

       default: 
        fingerState = FINGER_UNDEFINED; 

      } 

      return false; 
     } 
    });