2013-09-25 3 views
2

안녕하세요!클릭하면 Android webview

내 안드로이드 응용 프로그램에는 웹보기 링크가 있는데, "google.com"이라고 가정합니다. 나는 한 가지 일을하고 싶다. 사용자가 "검색"을 클릭하면 내 앱은 "검색"을 할 것이다. 사용자가 "메일"을 클릭하면 메일이 토스트됩니다.

웹 사이트가 광산 인 경우 onClick 이벤트를 처리하기 위해 javascript를 html에 추가 할 수 있습니다. 그러나 상황은 웹 사이트가 공개 웹 사이트입니다. 어떤 해결책이 있습니까?

내 애플리케이션에서 웹보기의 데이터를 가져와 사용할 수도 있습니까? 나는 REST와 Jsoup에서 공부하고있다.

감사합니다.

답변

0

월이 도움 :

버디 당신이 otherthan 안드로이드가 HTML 코드에 온 클릭을 기록하지만, 당신이 당신의 Webview 객체에 onTouchListener을 구현하여 전체 웹보기의 클릭을 얻을 수있는 웹보기의의 내부 객체의 클릭을 얻을 수 없다 그리고 재정이처럼 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; 
     } 
    });