Mungkin untuk mencegah penskalaan halaman web di safari di iOS 10, tetapi itu akan melibatkan lebih banyak pekerjaan di pihak Anda. Saya kira argumennya adalah bahwa tingkat kesulitan harus menghentikan devs kargo-kultus dari menjatuhkan "user-scalable = no" ke dalam setiap tag viewport dan membuat hal-hal sulit bagi pengguna yang mengalami gangguan penglihatan.
Namun, saya ingin melihat Apple mengubah implementasinya sehingga ada cara sederhana (meta-tag) untuk menonaktifkan ketuk dua kali untuk memperbesar. Sebagian besar kesulitan berhubungan dengan interaksi itu.
Anda dapat menghentikan pinch-to-zoom dengan sesuatu seperti ini:
document.addEventListener('touchmove', function (event) {
if (event.scale !== 1) { event.preventDefault(); }
}, false);
Perhatikan bahwa jika ada target yang lebih dalam memanggil stopPropagation pada acara tersebut, acara tidak akan mencapai dokumen dan perilaku penskalaan tidak akan dicegah oleh pendengar ini.
Menonaktifkan ketukan ganda untuk memperbesar serupa. Anda menonaktifkan ketukan pada dokumen yang terjadi dalam 300 milidetik dari ketukan sebelumnya:
var lastTouchEnd = 0;
document.addEventListener('touchend', function (event) {
var now = (new Date()).getTime();
if (now - lastTouchEnd <= 300) {
event.preventDefault();
}
lastTouchEnd = now;
}, false);
Jika Anda tidak mengatur elemen formulir Anda dengan benar, memfokuskan pada input akan memperbesar otomatis, dan karena Anda sebagian besar telah menonaktifkan zoom manual, sekarang hampir tidak mungkin untuk unzoom. Pastikan ukuran font input adalah> = 16px.
Jika Anda mencoba menyelesaikan ini di WKWebView di aplikasi asli, solusi yang diberikan di atas layak, tetapi ini adalah solusi yang lebih baik: https://stackoverflow.com/a/31943976/661418 . Dan seperti yang disebutkan dalam jawaban lain, di iOS 10 beta 6, Apple kini telah memberikan bendera untuk menghormati tag meta.
Pembaruan Mei 2017: Saya mengganti metode lama 'check touches on touchstart' untuk menonaktifkan pinch-zoom dengan pendekatan 'check event.cale on touchmove' yang lebih sederhana. Harus lebih dapat diandalkan untuk semua orang.