Ich habe mein iPhone 6 plus auf die Beta-Version von iOS 10 aktualisiert und festgestellt, dass Sie in der mobilen Safari alle Webseiten zoomen können, indem Sie zweimal auf den user-scalable=no
Code im Meta-Tag tippen oder ihn kneifen . Ich weiß nicht, ob es sich um einen Fehler oder eine Funktion handelt. Wie deaktivieren wir das Zoomen von iOS 10-Safari im Ansichtsfenster, wenn dies als Funktion betrachtet wird?
Aktualisiert auf iOS 11/12, iOS 11 und iOS 12 Safari respektieren das Meta-Tag immer noch NICHTuser-scalable=no
.
Antworten:
Es ist möglich, die Skalierung von Webseiten in Safari unter iOS 10 zu verhindern, aber es wird mehr Arbeit von Ihrer Seite erfordern. Ich denke, das Argument ist, dass ein gewisser Schwierigkeitsgrad verhindern sollte, dass Entwickler von Frachtkult "user-scalable = no" in jedes Ansichtsfenster-Tag fallen lassen und es für Benutzer mit Sehbehinderung unnötig schwierig machen.
Trotzdem würde ich gerne sehen, dass Apple seine Implementierung so ändert, dass es eine einfache Möglichkeit (Meta-Tag) gibt, das Doppeltippen zum Zoomen zu deaktivieren. Die meisten Schwierigkeiten beziehen sich auf diese Interaktion.
Mit so etwas können Sie das Zoomen stoppen:
Beachten Sie, dass, wenn tiefere Ziele stopPropagation für das Ereignis aufrufen, das Ereignis das Dokument nicht erreicht und das Skalierungsverhalten von diesem Listener nicht verhindert wird.
Das Deaktivieren von Double-Tap-to-Zoom ist ähnlich. Sie deaktivieren jedes Tippen auf das Dokument, das innerhalb von 300 Millisekunden nach dem vorherigen Tippen erfolgt:
Wenn Sie Ihre Formularelemente nicht richtig eingerichtet haben, wird die Fokussierung auf eine Eingabe automatisch gezoomt. Da Sie den manuellen Zoom größtenteils deaktiviert haben, ist das Zoomen jetzt fast unmöglich. Stellen Sie sicher, dass die eingegebene Schriftgröße> = 16px ist.
Wenn Sie versuchen, dies in einem WKWebView in einer nativen App zu lösen, ist die oben angegebene Lösung sinnvoll. Dies ist jedoch eine bessere Lösung: https://stackoverflow.com/a/31943976/661418 . Und wie in anderen Antworten erwähnt, hat Apple in iOS 10 Beta 6 jetzt eine Flagge bereitgestellt, um das Meta-Tag zu ehren.
Update Mai 2017: Ich habe die alte Methode "Länge der Berührungen beim Berühren überprüfen" zum Deaktivieren des Pinch-Zooms durch einen einfacheren Ansatz "Prüfen von event.scale on touchmove" ersetzt. Sollte für alle zuverlässiger sein.
quelle
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
Wenn der Browser das Meta-Tag nicht berücksichtigt, ist das Browser-Design sehr schlecht. Das andere, wie sehr schlechtes Design, ist eine Vorwärts- / Rückwärtsbewegung durch Schieben, die in iOS 9/10 nicht verhindert werden kann. Es unterbricht stark schleppende Aktionen innerhalb der Webanwendung.preventDefault
auftouchmove
. Sie können den Zoom nicht (vollständig) deaktivieren, ohne den Bildlauf zu deaktivieren.If you don't set up your form elements right, focusing on an input will auto-zoom, and since you have mostly disabled manual zoom, it will now be almost impossible to unzoom. Make sure the input font size is >= 16px.