Disable double-clicking on Android web browsers without viewing

I want to disable the double enlargement of tabs on a div on my webpage in an Android browser. I tried to prevent default when starting touch and touchmove by canceling the bubble / propogarion. even tried jquery mobile doubletap event, but it gets triggered after an element is incremented.

+6
source share
3 answers

Add the following meta. In most mobile browsers, this will stop with a double tap, but will stop it on your page - not just your single div. Is it all or nothing, I'm afraid.

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" /> 
+8
source

Extend your WebView and use the GegstureDetector to detect double clicks.

 public class DummyWebView extends WebView { private boolean doubleTapped; private GestureDetector.OnGestureListener gestureListener; private GestureDetector.OnDoubleTapListener doubleTapListener; private GestureDetector gestureDetector; public DummyWebView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); getSettings().setUseWideViewPort(true); getSettings().setBuiltInZoomControls(true); // Gesture Listener gestureListener = new GestureDetector.OnGestureListener() { @Override public boolean onSingleTapUp(MotionEvent e) { // Nothing to do return false; } @Override public void onShowPress(MotionEvent e) { // Nothing to do } @Override public boolean onScroll( MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { // Nothing to do return false; } @Override public void onLongPress(MotionEvent e) { // Nothing to do } @Override public boolean onFling( MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { // Nothing to do return false; } @Override public boolean onDown(MotionEvent e) { // Nothing to do return false; } }; // Double tap listener doubleTapListener = new GestureDetector.OnDoubleTapListener() { @Override public boolean onSingleTapConfirmed(MotionEvent e) { // Nothing to do return false; } @Override public boolean onDoubleTapEvent(MotionEvent e) { // Double tap detected, we need to prevent doubleTapped = true; return false; } @Override public boolean onDoubleTap(MotionEvent e) { return false; } }; // Gesture detection on itself gestureDetector = new GestureDetector(getContext(), gestureListener_); gestureDetector.setOnDoubleTapListener(doubleTapListener); } @Override public boolean onTouchEvent(MotionEvent event) { if(gestureDetector.onTouchEvent(event)) return true; // Double tapping might perform zooming in/out // We need to prevent it if(doubleTapped) { doubleTapped = false; return doubleTapped; } return super.onTouchEvent(event); } } 
+3
source
 <meta name="viewport" user-scalable=no" /> 

save your time if you do not want to optimize it for mobile devices.

0
source

All Articles