Предотвращение клавиатуры 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);