Quando un utente accede alla mia app da un iPhone/iPad, Safari (utilmente) effettua lo zoom mentre l'utente sta compilando i campi nome utente/password. Ma quando il modulo viene inviato e noi li accediamo, non ricarichiamo la pagina (questa è un'applicazione a singola pagina), quindi lo zoom non viene mai ripristinato. Quindi l'app viene sempre avviata con una scala ingrandita.Come posso ripristinare lo zoom dopo l'invio del modulo in Safari mobile, mantenendo in seguito la scalabilità dell'utente?
Ho visto Jeremy Keith's solution, che ripristina correttamente lo zoom, ma impedisce anche il ridimensionamento/zoom futuro da parte dell'utente, perché imposta maximum-scale
del viewport.
Ti piace questa:
var viewportmeta = document.querySelector('meta[name="viewport"]');
if (viewportmeta) {
viewportmeta.content = 'width=device-width, minimum-scale=1.0, maximum-scale=1.0, initial-scale=1.0';
}
qualcuno ha visto una bella soluzione per resettare questo dopo un invio di un modulo, senza congelare la finestra dopo?
Come di iOS 9, ho dovuto aggiungere anche 'shrink-to-fit = no' - [Fonte] (http://www.wmyl.se/en/blog/safari-ios-9 -causing-issues-responsive-sites /) –
Questo sembra aver smesso di funzionare in iOS 10. Sarebbe interessato a una correzione. – Magnar
Grazie; questo è stato molto utile. Offrirò un miglioramento di poche righe: 'var viewportContentOrig = viewportmeta.getAttribute ('content'); viewportmeta.setAttribute ('content', 'width = device-width, minimum-scale = 1.0, maximum-scale = 1.0, initial-scale = 1.0'); viewportmeta.setAttribute ('content', viewportContentOrig); ' – Ryan