Предотвращение клавиатуры iOS с прокручиваемой страницы в кордове 3.5
Я использую Cordova 3.5 и jQuery mobile для создания приложения iOS. У меня отключена прокрутка в большинстве приложений; однако, когда я выбираю поле ввода, открывается клавиатура iOS и прокручивает страницу вверх. Я не хочу эту функциональность. Поскольку вход достаточно высок, чтобы клавиатура не закрывала его, я хочу, чтобы страница оставалась неподвижной, пока клавиатура закрывает нижнюю часть страницы.
Этот вопрос похож на ряд других, таких как этот, и является противоположностью проблемы, опубликованной здесь.
Однако ни один из опубликованных ответов не работал у меня, поэтому я опубликую свое решение здесь.
Ответы
Ответ 1
Добавьте этот плагин с помощью
cordova plugin add https://github.com/driftyco/ionic-plugins-keyboard.git
в командной строке.
Добавьте следующую строку в любом месте javascript, чтобы отключить прокрутку с клавиатуры.
cordova.plugins.Keyboard.disableScroll(true);
В моем примере использования я добавил прослушиватель событий deviceready
, чтобы оценить эту строку, отключив автоматическую прокрутку клавиатуры везде в приложении.
Что это!
Ответ 2
Исходя из моего опыта и высказывания этого как разработчика, который максимально избегает подключаемых модулей сторонних разработчиков, я обнаружил, что проблемы с виртуальной клавиатурой в Cordova лучше всего решать с помощью подключаемого модуля.
В каталоге плагинов Cordova есть несколько плагинов для keyboard
(http://cordova.apache.org/plugins/?q=keyboard)
Я рекомендую следующий плагин:
https://github.com/cjpearson/cordova-plugin-keyboard
Который предоставляет следующую команду для отключения прокрутки при открытой виртуальной клавиатуре.
cordova.plugins.Keyboard.disableScrollingInShrinkView(true);