2012-01-30 10 views
22

Zajmuję się tworzeniem aplikacji dla systemu Android przy użyciu Phonegap. Muszę sprawić, żeby softkey pojawił się programowo. Korzystam z wtyczki SoftKeyboard, którą można znaleźć pod adresem here. Czy ktoś może mi powiedzieć, jak poprawnie włączyć tę wtyczkę & sprawiają, że działa? Wypróbowałem samouczek znaleziony na Phonegap Wiki, ale wtyczka nie działa.Jak korzystać z wtyczki SoftKeyboard firmy Phonegap dla systemu Android?

[Aktualizacja] Dodałem wtyczkę do ścieżki

com/zenexity/SoftKeyBoardPlugin/SoftKeyBoard.java

Updated plugins.xml i zawarte

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

Następnie w folderze www dodany softkeyboard.js, a następujące w index.html

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

Ale nic się nie dzieje, klawiatura nie wyświetla ..

+0

określenie 'nie działa' – Nanne

+0

@Nanne nic się nie dzieje, nie ma klawiatury wyświetlania! –

+0

i czy umieściłeś cokolwiek w części sukces/błąd, aby debugować, jeśli jest dokładnie faisl lub nie/ – Nanne

Odpowiedz

11

To jak mam SoftKeyBoard pracy w mojej aplikacji.

DroidGap Side

  • tworzyć/src/com/PhoneGap/plugins/SoftKeyboard z dostarczonych plików SoftKeyBoard.java wewnątrz
  • dodatku do /res/xml/plugins.xml:

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

/assets/www Side

  • ADD przewidziane softkeyboard.js plików do/assets/www/js
  • dodać do indeksu.html w głowie gdzie inne javascripts są zawarte Po obejmowały PhoneGap javascript:

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

Następnie można zadzwonić, jeśli jesteś na urządzeniu następujące albo za pomocą czegoś podobnego Ripple:

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

lub coś takiego, jeśli chcesz, aby upewnić się, że przestrzeń nazw jest dostępna, który uniemożliwi niezdefiniowane problemy:

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

Myślę, że być może w przypadku, gdy popełniłeś błąd, nie uwzględniłeś pliku js/softkeyboard.js w twojej głowie index.html.

Nadzieja to pomaga

+0

Działa, ale jak poznać wydarzenie klawiatury ukryć i pokazać? użyłem tego kodu (((((|| {}). wtyczki || {}). SoftKeyBoard || {}). show || function() {})(); – JavaH

+0

Jak wywołać powyższą funkcję 'onfocus' lub' onclick '' EditText' w javascript? – YuDroid

+1

W moim przypadku klawiatura jest wyświetlana, a następnie nagle znika. Dlaczego tak się dzieje? – YuDroid

2

Spróbuj tak:

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

Kod w pliku JS nie umieścić go w przestrzeni nazw „Wtyczki”.

Orjust użyć PhoneGap wtyczek pełne nazw:

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

do najnowszej wersji PhoneGap (Apache Cordova 2.1.0) musiałem wykonać następujące czynności:

Zainstalowany plugin te źródła, które odzwierciedlały zmiany nazwa projektu: https://github.com/originalgremlin/phonegap-plugins/tree/master/Android/SoftKeyboard

  • Skopiuj plik softkeyboard.js do katalogu biblioteki javascript.
  • Kopiowanie SoftKeyBoard.java do src/org/apache/Cordova/plugins/SoftKeyBoard.java

umieścić to w pliku HTML, po tym plik cordova.js:

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

Dodaj to na dnie res/xml/config.xml wtyczek sekcja:

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

teraz, zakładając tę ​​HTML:

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

Ten jQuery powinien zrobić coś pożytecznego:

var softkeyboard = window.cordova.plugins.SoftKeyBoard; 
$('#keyboard').toggle(softkeyboard.show, softkeyboard.hide); 
+0

Ty Sir oszczędziłeś mi dużo czasu, dziękuję bardzo! –

+0

Klawiatura znika po jej wywołaniu? dowolny pomysł? używanie iscrollview, cordova 2.9.0, jqm 1.3.2 – mboeckle

0

Cordova 3,0 + JQM 1.3.2: Zmiana "fullscreen" na "false" w config.xml ustaliła "adjustPan" i nie pozwolił mi wejść od bycia pokryte, gdy wyświetlana jest klawiatura. Jednak blur() nie zamknie klawiatury, a ta wtyczka działała cudownie.

Dla prawie najnowszej wersji PhoneGap:

  • Dodaj SoftKeyBoard.java do aplikacji pakietu w src
  • Dodaj softkeyboard.js do aktywów/www
  • Aktualizacja config.xml z: <feature name="SoftKeyBoard"><param name="android-package" value="com.yourAppPackage" /></feature>
  • Zadzwoń do wtyczki: plugins.SoftKeyBoard.hide(function() {//success }, function() {//fail });
Powiązane problemy