2013-09-25 27 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; 
     } 
    });