Как использовать плагин Phonegap SoftKeyboard для Android?

Я разрабатываю приложение для Android, используя Phonegap. Мне нужно, чтобы программная клавиатура отображалась программно. Я использую подключаемый модуль SoftKeyboard, который можно найти здесь. Может ли кто-нибудь сказать мне, как правильно включить этот плагин и заставить его работать? Я попробовал руководство, найденное на Phonegap Wiki, но плагин не работает.

[Обновление] Я добавил плагин в путь

com/zenexity/SoftKeyBoardPlugin/SoftKeyBoard.java

Обновлено plugins.xml и включено

<plugin name="SoftKeyBoard" value="com.zenexity.SoftKeyBoardPlugin.SoftKeyBoard"/>

Потом в папку www добавил softkeyboard.js, а следующие в index.html

plugins.SoftKeyBoard.show(function () {
    // success
},function () {
   // fail
});

Но ничего не происходит, клавиатура не отображается..


person N.B.K    schedule 30.01.2012    source источник
comment
@Nanne ничего не происходит, клавиатура не отображается!   -  person N.B.K    schedule 01.02.2012
comment
и вы добавили что-нибудь в части успеха/неудачи для отладки, если это действительно не удалось или нет/   -  person Nanne    schedule 01.02.2012
comment
Да, проверил с оповещениями, но ничего не происходит   -  person N.B.K    schedule 01.02.2012


Ответы (5)


Вот как я заставил SoftKeyBoard работать в своем приложении.

Сторона DroidGap

  • создайте /src/com/phonegap/plugins/SoftKeyboard с предоставленным файлом SoftKeyBoard.java внутри
  • добавить в /res/xml/plugins.xml:

    < plugin name="SoftKeyBoard" value="com.phonegap.plugins.SoftKeyboard.SoftKeyBoard" />

/assets/www Сторона

  • добавьте предоставленный файл softkeyboard.js в /assets/www/js
  • добавьте в index.html в заголовке, где включены другие ваши javascripts после того, как вы включили javascript phonegap:

    < script type="text/javascript" charset="utf-8" src="js/softkeyboard.js"></script>

Затем вы можете вызвать следующее, если вы находитесь на устройстве или используете что-то вроде Ripple:

window.plugins.SoftKeyBoard.show(function () {
  // success
},function () {
  // fail
});

или что-то вроде этого, если вы хотите убедиться, что пространство имен доступно, что предотвратит неопределенные проблемы:

((((window || {}).plugins || {}).SoftKeyBoard || {}).show || function(){})();

Я думаю, что, возможно, вы ошиблись, не включив js/softkeyboard.js в свой заголовок index.html.

Надеюсь, это поможет вам

person darryn.ten    schedule 22.02.2012
comment
Это работает, но как узнать, что клавиатура скрывает и показывает событие? я использовал этот код ((((window || {}).plugins || {}).SoftKeyBoard || {}).show || function(){})(); - person JavaH; 31.07.2012
comment
Как вызвать вышеуказанную функцию onfocus или onclick из EditText в javascript? - person YuDroid; 13.09.2012
comment
В моем случае клавиатура отображается, а затем внезапно исчезает. Почему это происходит? - person YuDroid; 13.09.2012
comment
возникла та же проблема, что и в комментарии выше, есть идеи? - person mboeckle; 23.11.2013

Для последней версии PhoneGap (Apache Cordova 2.1.0) мне пришлось сделать следующее:

Установлены эти источники плагинов, которые отражают изменение названия проекта: https://github.com/originalgremlin/phonegap-plugins/tree/master/Android/SoftKeyboard

  • Скопируйте softkeyboard.js в каталог библиотеки javascript.
  • Скопируйте SoftKeyBoard.java в src/org/apache/cordova/plugins/SoftKeyBoard.java.

Поместите это в свой HTML-файл после включения файла cordova.js:

<script src="/path/to/javascripts/softkeyboard.js"></script>

Добавьте это в конец раздела плагинов res/xml/config.xml:

<plugin name="SoftKeyBoard" value="org.apache.cordova.plugins.SoftKeyBoard" />

Теперь, предполагая этот HTML:

<button id="keyboard">Toggle Keyboard</button>

Этот jQuery должен сделать что-то полезное:

var softkeyboard = window.cordova.plugins.SoftKeyBoard;
$('#keyboard').toggle(softkeyboard.show, softkeyboard.hide);
person originalgremlin    schedule 18.10.2012
comment
клавиатура исчезает после вызова? любая идея? используя iscrollview, кордова 2.9.0, jqm 1.3.2 - person mboeckle; 23.11.2013

Попробуйте это так:

SoftKeyBoard.show(function () {
    // success
},function () {
   // fail
});

Код в файле JS не помещает его в пространство имен «плагины».

Или просто используйте полное пространство имен плагинов PhoneGap:

window.plugins.SoftKeyBoard.show(function () {
    // success
},function () {
   // fail
});
person James Harris    schedule 04.02.2012

Cordova 3.0 + JQM 1.3.2: изменение «полноэкранного режима» на «false» в config.xml зафиксировало «adjustPan» и предотвратило перекрытие ввода при отображении клавиатуры. Тем не менее, blur() не закрывал клавиатуру, и этот плагин прекрасно работал.

Для почти последней версии phonegap:

  • Добавьте SoftKeyBoard.java в пакет вашего приложения в src.
  • Добавьте softkeyboard.js в assets/www
  • Обновите config.xml с помощью: <feature name="SoftKeyBoard"><param name="android-package" value="com.yourAppPackage" /></feature>
  • Позвоните в свой плагин: plugins.SoftKeyBoard.hide(function() {//success }, function() {//fail });
person Maj0rPaine    schedule 24.10.2013

пройти по ссылке. вот полный проект: --

Плагин SoftKeyboard от Саймона Макдональда

person Nullify    schedule 26.04.2013