ビューポートなしでアンドロイドWebブラウザのダブルタップを無効にする

私はアンドロイドブラウザの私のウェブページのdivの倍のタブズームを無効にしたい。 私は、タッチスタートとtouchmoveのデフォルトを防ぎ、バブル/プロポガーリを取り消そうとしました。 jquery mobile doubletapイベントを試してみましたが、要素がズームされた後に起動します。

6
nl ru de

3 答え

次のメタを追加します。これにより、大部分のモバイルブラウザでダブルタップズームが停止されますが、1つのdivだけでなく、ページのどこでも停止します。それはすべてかどうか、私は恐れている。

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
8
追加された
もうiOS 10では動作しません。
追加された 著者 Jarzka,
はい、iOS 10以降では動作しません
追加された 著者 karthick nagarajan,

ダブルクリックを検出するには WebView を拡張し、 GegstureDetector を使用します。

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
追加された
これはjavascriptとは何が関係していますか?
追加された 著者 Lambart,
@lalenguaそれは意味をなさないでしょう。あなたはおそらく正しいでしょう。
追加された 著者 Lambart,
gestureListenerとは何ですか?
追加された 著者 Ravi,
@Lambart私はあなたのwebapp HTML + CSS + JS をアンドロイドに配備するために WebView を使用する場合、 user948620 Javascript で 'WebViewを拡張し、GegstureDetectorを使ってダブルタップを検出する' 「純粋なJavascript aproach」については、この回答を参照してください: stackoverflow.com/a/10910547/3424892
追加された 著者 lalengua,
<meta name="viewport" user-scalable=no" />

モバイル用に最適化したくない場合は、時間を節約できます。

0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript