È possibile impedire il ridimensionamento delle pagine Web in Safari su iOS 10, ma coinvolgerà più lavoro da parte tua. Immagino che l'argomento sia che un certo grado di difficoltà dovrebbe impedire agli sviluppatori di beni di culto di far cadere "user-scalable = no" in ogni tag viewport e rendere le cose inutilmente difficili per gli utenti ipovedenti.
Tuttavia, vorrei vedere Apple modificare la loro implementazione in modo che ci sia un modo semplice (meta-tag) per disabilitare il doppio tocco per ingrandire. La maggior parte delle difficoltà riguarda tale interazione.
Puoi interrompere il pizzico per ingrandire con qualcosa del genere:
document.addEventListener('touchmove', function (event) {
if (event.scale !== 1) { event.preventDefault(); }
}, false);
Si noti che se eventuali target più profondi chiamano stopPropagation sull'evento, l'evento non raggiungerà il documento e il comportamento di ridimensionamento non sarà impedito da questo listener.
La disabilitazione del doppio tocco per ingrandire è simile. Disattivi qualsiasi tocco sul documento che si verifica entro 300 millisecondi dal tocco precedente:
var lastTouchEnd = 0;
document.addEventListener('touchend', function (event) {
var now = (new Date()).getTime();
if (now - lastTouchEnd <= 300) {
event.preventDefault();
}
lastTouchEnd = now;
}, false);
Se non imposti correttamente gli elementi del modulo, la messa a fuoco su un input eseguirà lo zoom automatico e, dato che hai disabilitato principalmente lo zoom manuale, ora sarà quasi impossibile decomprimere. Assicurati che la dimensione del carattere di input sia> = 16px.
Se stai cercando di risolverlo in un WKWebView in un'app nativa, la soluzione sopra indicata è praticabile, ma questa è una soluzione migliore: https://stackoverflow.com/a/31943976/661418 . E come menzionato in altre risposte, in iOS 10 beta 6, Apple ha ora fornito una bandiera per onorare il meta tag.
Aggiornamento maggio 2017: ho sostituito il vecchio metodo "verifica lunghezza tocchi al tocco" per disabilitare lo zoom con pizzico con un approccio più semplice "verifica evento. Scala al tocco". Dovrebbe essere più affidabile per tutti.