программная клавиатура Android будет покрыта вводом, поданным в Кордове

#android #angular #cordova

#Android #угловатый #кордова #angular

Вопрос:

когда я вводлю текст в поле ввода, поле ввода закрывается программной клавиатурой в телефоне Android. Я создаю свое приложение с помощью cordova / angular 6

Я попробовал решение:

 <preference name="Fullscreen" value="false" />
<edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application/activity[@android:name='MainActivity']">
    <activity android:windowSoftInputMode="adjustResize" />
</edit-config>
  

но все еще не работает…

Есть ли какой-либо другой возможный способ установить с помощью cordova, не используя прокрутку фокуса ввода? спасибо 🙂

Ответ №1:

Мы решили проблему, используя две функции в JS и плагин ionic-plugin-keyboard.

Сначала отследите событие в вашей основной функции:

 window.addEventListener('native.keyboardshow', keyboardShowHandler);
window.addEventListener('native.keyboardhide', keyboardHideHandler);
  

Затем используйте функции для перемещения ваших полей вверх / вниз (вот наш код, управляющий нашей пользовательской формой входа в систему, в качестве примера для изменения):

 function keyboardShowHandler(e) {       
$("#login .content a.reset-password").slideUp("slow", function () {});
$("#login .content a.sign-up").slideUp("slow", function () {});
$("#login .content a.credits").slideUp("slow", function () {});
$("#login .content a.tutorial").slideUp("slow", function () {});
}

function keyboardHideHandler(e) {       
$("#login .content a.reset-password").slideDown("slow", function () {});
$("#login .content a.sign-up").slideDown("slow", function () {});
$("#login .content a.credits").slideDown("slow", function () {});
$("#login .content a.tutorial").slideDown("slow", function () {});
}