Для всех, кто сталкивался с этой проблемой с 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.Лучше было бы запустить события смены ориентации или изменения размера для перерисовки после того, как клавиатура исчезла, но я не смог заставить окно перерисовать на нужной высоте через JS.