Веб-приложение IOS увеличивает при повороте, когда отображается клавиатура

<!doctype html>
<html>
<head>
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="viewport" content="width=600,user-scalable=no">
</head>
<body>
<div style="width:570px;height:300px;border:1px solid black" >
<input type=text>
</div>
</body>
</html>

При открытии вышеуказанного файла с главного экрана и касании в поле ввода в альбомном режиме, затем при повороте телефона в портретный режим экран увеличивается, и уменьшить его невозможно. Не происходит при открытии в Safari.

Действия по воспроизведению:
1. Сохраните закладку в файл на главном экране.
2. Откройте закладку на главном экране
3. Переведите телефон в ландшафтный режим.
4. Нажмите в поле ввода, появится клавиатура
5. Переведите телефон в портретный режим.

Ожидаемые результаты: экран не должен увеличиваться.

Фактические результаты: Экран увеличится.

Версия: IOS 9

Примечания: не произошло до IOS9. Не происходит в Safari, только в Web Clip.

Есть идеи для обхода?

1 ответ

Решение

Нашел решение здесь:

https://github.com/scottjehl/iOS-Orientationchange-Fix

Хотя для меня нет необходимости в акселерометре, просто установка мета-контента в "Maximum-Scale=1" делает свое дело:

 var meta = document.querySelector( "meta[name=viewport]" ),
            initialContent = meta && meta.getAttribute( "content" ),
            disabledZoom = initialContent + ",maximum-scale=1";

        function restoreZoom(){
            meta.setAttribute( "content", disabledZoom );
            
        }
window.addEventListener( "orientationchange", restoreZoom, false );

Другие вопросы по тегам