Наконец, я смог найти одно временное решение, оно все еще имеет небольшую проблему.Чтобы решить ее, я делаю следующее:
Первый: В app.js я отключаю прокрутку следующим образом:
if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.disableScroll(true);
}
Второй: Зарегистрируйте событие скрытия клавиатуры, оно будет запускаться keyboardHideHandler
, когда клавиатура или выбор элемента управления закрываются:
window.addEventListener('native.keyboardhide', keyboardHideHandler);
Третье: Реализуйте keyboardHideHandler
следующим образом.После реализации все проблемы возникли только в первый раз, поэтому необходимо использовать флаг isFirstTimeEdit
:
var isFirstTimeEdit = true;
function keyboardHideHandler(e){
if(isFirstTimeEdit) {
isFirstTimeEdit = false;
if(window.scrollY >= 20) {
document.body.style.marginTop = "20px";
}
}
window.removeEventListener('native.keyboardshow', keyboardShowHandler);
}