iOS 10のSafariでWebページのスケーリングを防止することは可能ですが、ユーザー側でさらに作業が必要になります。ある程度の困難は、カーゴカルトの開発者が「user-scalable = no」をすべてのビューポートタグにドロップして、視覚障害のあるユーザーにとって不必要に困難になることを阻止するべきだという議論だと思います。
それでも、Appleが実装を変更して、ダブルタップによるズームを無効にする簡単な(メタタグ)方法があるようにしてほしいと思います。困難のほとんどは、その相互作用に関連しています。
次のような方法でピンチズームを停止できます。
document.addEventListener('touchmove', function (event) {
if (event.scale !== 1) { event.preventDefault(); }
}, false);
より深いターゲットがイベントでstopPropagationを呼び出す場合、イベントはドキュメントに到達せず、スケーリング動作はこのリスナーによって妨げられないことに注意してください。
ダブルタップしてズームを無効にする方法も同様です。前のタップから300ミリ秒以内に発生したドキュメントのタップを無効にします。
var lastTouchEnd = 0;
document.addEventListener('touchend', function (event) {
var now = (new Date()).getTime();
if (now - lastTouchEnd <= 300) {
event.preventDefault();
}
lastTouchEnd = now;
}, false);
フォーム要素を正しく設定しないと、入力に焦点を合わせると自動ズームが行われ、手動ズームをほとんど無効にしているため、ズームを解除することはほとんど不可能になります。入力フォントサイズが16px以上であることを確認してください。
これをネイティブアプリのWKWebViewで解決しようとしている場合、上記の解決策は実行可能ですが、これはより良い解決策です:https : //stackoverflow.com/a/31943976/661418。また、他の回答で述べたように、iOS 10ベータ6では、Appleがメタタグを尊重するフラグを提供しています。
2017年5月更新:ピンチズームを無効にする古い「タッチスタートでタッチの長さをチェックする」メソッドを、よりシンプルな「タッチムーブでイベントをチェックする」チェックアプローチに置き換えました。誰にとってもより信頼できるはずです。