Можна запобігти масштабуванню веб-сторінок у сафарі на iOS 10, але це потребує більшої роботи з вашого боку. Я здогадуюсь, аргумент полягає в тому, що ступінь складності повинна зупинити вантажні культові диски, щоб вони не потрапляли на "користувач, що масштабується = ні", у кожен тег огляду та робили речі непотрібними для користувачів із порушеннями зору.
Все ж хотілося б, щоб 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);
Якщо ви неправильно налаштуєте елементи форми, фокусування на вводі автоматично збільшить масштаб, а оскільки ви в основному відключили ручне збільшення, знімати масштаб тепер буде майже неможливо. Переконайтеся, що розмір вхідного шрифту> = 16 пікс.
Якщо ви намагаєтеся вирішити це в WKWebView в нативній програмі, рішення, наведене вище, є життєздатним, але це краще рішення: https://stackoverflow.com/a/31943976/661418 . І як уже згадувалося в інших відповідях, в iOS 10 beta 6 Apple тепер подала прапор на честь метатега.
Оновлення травня 2017 року: я замінив старий метод "check touch touch on touchstart", щоб відключити "pinch-zoom" більш простим підходом "check event.scale on touchmove". Має бути більш надійним для всіх.