2012-05-02 2 views
1

더블 클릭 기능이있는 웹 사이트가 있으므로 브라우저에서 더블 클릭하면 확대/축소됩니다. 그래서 나는 WebView를 구축하여 더블 클릭을 타고 넘어갈 수 있도록해야한다.WebView에서 더블 클릭 작업 만들기

public class myWebView extends Activity{ 

GestureDetector gs = null; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    WebView engine = (WebView) findViewById(R.id.web_engine); 
    engine.getSettings().setJavaScriptEnabled(true); 
    engine.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
    engine.getSettings().setSupportMultipleWindows(true); 
    engine.setWebChromeClient(new WebChromeClient() { 
     @Override 
     public boolean onJsAlert(WebView view, String url, String message, JsResult result) { 
        return super.onJsAlert(view, url, message, result); 
      } 
    }); 
    engine.setWebViewClient(new WebViewClient() { 
       @Override 
       public boolean shouldOverrideUrlLoading(WebView view, String url) { 
        view.loadUrl(url); 
        return true; 
       } 
      }); 

    engine.setOnTouchListener(new View.OnTouchListener() { 
     public boolean onTouch(View v, MotionEvent event) { 
      if (gs == null) { 
       gs = new GestureDetector(
         new GestureDetector.SimpleOnGestureListener() { 
          //overrides the double click 
          @Override 
          public boolean onDoubleTapEvent(MotionEvent e) { 
           // SOME CODE THAT SIMULATES A DOUBLE CLICK 
           return true; 
          } 
         }); 
      } 
      gs.onTouchEvent(event); 
      return false; 
     } 
    }); 
    engine.loadUrl("http://www.google.com"); 
} 
} 

따라서 onDoubleTapEvent (MotionEvent e) 함수는 두 번 클릭 할 때 어떤 작업을 수행합니다. The above code is mostly thanks too Cehm.

그래서이 시점에서 나는 그것을 두 번 클릭을 실행하는 속임수가 필요합니다. 거기에 몇 번의 클릭 만 시뮬레이션 할 수 있습니까?

+0

자사의 플랫폼에 대한 UI 규칙을 무시하는 정말 나쁜 생각 . 확대하려면 두 번 탭 동작이 잘 알려져 있고 사용자가 사용합니다. 다른 작업을 수행하기 위해 사용하기 시작하면 사용자를 화나게 만듭니다. – slayton

+0

글쎄요, 대기업에서 직원을 위해 사용하는 특정 웹 사이트에 대해서만이 작업을 수행하고 있으며 더블 클릭 기능이 필요합니다. 안드로이드 용 웹 브라우저를 교체하려고하지 않습니다. 나는 매우 구체적인 목적을 위해 작은 앱을 만들기 위해 노력하고 있습니다. – user1366422

답변

2

번을 시도해보십시오

private GestureDetector gs = null; 

private OnTouchListener onTouch = new OnTouchListener() { 

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

     if (gs == null) { 
      gs = new GestureDetector(
        new GestureDetector.SimpleOnGestureListener() { 
         @Override 
         public boolean onDoubleTapEvent(MotionEvent e) { 

          //Double Tap 
          snapWebView.zoomIn();//Zoom in 
          return true; 
         } 

         @Override 
         public boolean onSingleTapConfirmed(MotionEvent e) { 

          //Single Tab 
          snapWebView.zoomOut();// Zoom out 
          return false; 
         }; 
        }); 
     } 

     gs.onTouchEvent(event); 

     return false; 
    } 
}; 

마지막으로, 웹보기로 설정 OnTouch 이벤트 :

webView.setOnTouchListener(onTouch); 

참조하십시오 세부 사항 : How to make Double Click in WebView?