Как сохранить приложение «Кордова» в полноэкранном режиме при открытии клавиатуры Android?

Я создал приложение Cordova, и я тестирую его на Nexus 4. Я использовал основные шаги, перечисленные в рабочем процессе CLI Cordova, для запуска и запуска. Я также изменил свой файл config.xml следующим образом:

<preference name="Fullscreen" value="true" /> 

Мое приложение работает в полноэкранном режиме, как ожидалось. Как только я нажимаю на поле ввода, клавиатура скользит вверх, как и ожидалось, но черные верхние и нижние полосы Android также появляются, которые остаются даже после закрытия клавиатуры.

Хуже того, они фактически скрывают часть приложения. В этот момент единственный способ избавиться от них и вернуться в полноэкранный режим – закрыть приложение и перезапустить его. ОБНОВЛЕНИЕ. Я обнаружил, что пользователь может удалить их, развернув и снова создав резервную копию в строке состояния или нажав кнопку последних приложений, но это не очевидно.

Есть ли способ предотвратить появление верхних и нижних баров?

В идеале я бы хотел избежать изменения чего-либо в каталоге platforms/android , так как я новичок в разработке мобильных устройств. Возможно, есть опция конфигурации, перехват или даже плагин, который я могу просто зайти, чтобы решить это?

Solutions Collecting From Web of "Как сохранить приложение «Кордова» в полноэкранном режиме при открытии клавиатуры Android?"

Для меня он начал воспроизводиться после обновления до cli-5.2.0. Пока я нашел 2 решения:

  1. Вернитесь к cli-5.1.1
  2. Добавьте полноэкранный режим cordova-plugin и добавьте AndroidFullScreen.immersiveMode () в обработчик события DeviceReady .

Я предпочел второе решение. Я надеюсь, что проблема будет исправлена ​​в будущих выпусках cordova, и я смогу удалить свое обходное решение. Я считаю, что соответствующий билет таков: https://issues.apache.org/jira/browse/CB-8902

Другой вариант – использовать API-интерфейс плагина Cordova ReferenceBar.

Кордова 6.3.1 cli-5.3.7

Плагин cordova добавить плагин cordova-plugin-statusbar

Следующий код скроет строку состояния. Я использую «if (window.StatusBar)», поскольку такая же функция выполняется на платформах non-cordova (например, автономный браузер).

 document.addEventListener("deviceready", onDeviceReady, false); function onDeviceReady() { if (window.StatusBar) window.StatusBar.hide(); } 

https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-statusbar/index.html