#jquery #android #mobile #keyboard #viewport
#jquery #Android #Мобильный #клавиатура #область просмотра
Вопрос:
У меня следующая проблема с мобильным веб-приложением jquery.
У меня есть фиксированный нижний колонтитул для моего приложения jquery, но когда открывается клавиатура Android (т. Е. При щелчке в строке браузера и ручной перезагрузке страницы), Кажется, что область просмотра находится только сверху (под панелью браузера) до верхнего края клавиатуры. Затем страница перезагружается, и высота области просмотра сохраняет этот размер, поэтому она слишком мала, когда клавиатура снова скрывается. Как я могу принудительно изменить размер, когда клавиатура снова скрыта?
Большое спасибо за вашу помощь.
Ответ №1:
Попробуйте поместить этот мета-тег в свой заголовок. Это может решить вашу проблему:
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
Ответ №2:
Невозможно избежать такого поведения с помощью javascript или css .. проверьте эту информационную ссылку
Ответ №3:
Для тех, кто еще испытывает эту проблему с Android, я заметил, что страница будет загружаться полностью без мета-области просмотра, поэтому попытался динамически добавлять с задержкой для браузеров Android, чтобы дождаться исчезновения клавиатуры.
var ua = navigator.userAgent.toLowerCase();
var isAndroid = /android/i.test(ua);
if(isAndroid) {
setTimeout(function(){
viewport = document.querySelector("meta[name=viewport]");
viewport.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0');
},100);
} else {
viewport = document.querySelector("meta[name=viewport]");
viewport.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0');
}
Измените продолжительность тайм-аута по своему усмотрению, но слишком короткая, и это не всегда работает. Единственная проблема в том, что на Android отображается более короткий контент. Лучшим решением было бы запустить события orientationchange или resize для перерисовки после отключения клавиатуры, но я не смог заставить окно перерисовываться на правильной высоте с помощью JS.
Ответ №4:
Попробуйте привязку к resize
событию на window
Комментарии:
1. Да, но что мне делать внутри? Я уже пытался вызвать «изменение ориентации», не помогает.