Существует два типа мобильного веб-масштабирования:
1. Дважды щелкните, чтобы увеличить;
2. Жест двумя пальцами для увеличения.
До iOS 10 и iOS, и Android могли отключать масштабирование страницы с помощью одной строки метатегов.
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" />
Но начиная с iOS 10 метанастройка не действует в Safari.
Позже я увидел решение в Интернете:
window.onload=function () {
document.addEventListener('touchstart',function (event) {
if(event.touches.length>1){
event.preventDefault();
}
})
var lastTouchEnd=0;
document.addEventListener('touchend',function (event) {
var now=(new Date()).getTime();
if(now-lastTouchEnd<=300){
event.preventDefault();
}
lastTouchEnd=now;
},false)
}
После тестирования этот метод может только отключить двойное касание для увеличения.
Просто продолжайте искать решение.
Оказывается, в iOS есть набор событий для операций жестов двумя пальцами:
Добавьте следующий прослушиватель событий к вышеуказанному методу js:
document.addEventListener('gesturestart', function (event) {
event.preventDefault();
});
Ни двойное касание для масштабирования, ни щипок для масштабирования.
Полный код:
<script>
window.onload=function () {
document.addEventListener('touchstart',function (event) {
if(event.touches.length>1){
event.preventDefault();
}
});
var lastTouchEnd=0;
document.addEventListener('touchend',function (event) {
var now=(new Date()).getTime();
if(now-lastTouchEnd<=300){
event.preventDefault();
}
lastTouchEnd=now;
},false);
document.addEventListener('gesturestart', function (event) {
event.preventDefault();
});
}
</script>
Вот и все, устанавливай!