2014-05-11 75 views
1

我正在編寫我的第一個PhoneGap應用程序,我需要使鍵盤以編程方式顯示和消失。不幸的是,它沒有工作,但我想知道我是否正確地做了。這裏是國家的事情:我用$ cordova plugin search keyboard發現這個插件在命令行如何使用PhoneGap的軟鍵盤(org.apache.cordova.plugin.softkeyboard)?

,然後我安裝了它這樣的:

$ cordova plugin add org.apache.cordova.plugin.softkeyboard Fetching plugin "org.apache.cordova.plugin.softkeyboard" via plugin registry Installing "org.apache.cordova.plugin.softkeyboard" for android

基於another SO answer,我加入這行我config.xml文件:

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

我把MYAPP/WWW softkeyboard.js/JS /,我引用它,像這樣的HTML:

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

安裝完成後,SoftKeyboard.java出現在MYAPP /插件/ org.apache.cordova.plugin.softkeyboard。但爲了好的方法,我還在myapp/src/org/apache/cordova/plugin /中添加了一個副本。

最後,我添加這些到我的html:

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

<script> var softkeyboard = window.cordova.plugins.SoftKeyBoard; $('#keyboard').toggle(softkeyboard.show, softkeyboard.hide); </script>

正如你可能已經猜到了,什麼都沒有發生的時候我重建和點擊按鈕。我應該做什麼不同?

謝謝!

P.S. - 在看到許多SO答案中使用的插件(單數)和插件(複數)之後,我將所有內容都重命名爲兩種方式,並且不會影響結果。

回答

1

在使用cordova add plugin命令添加插件後,不需要包含插件的js文件。你只需要包括cordova.js(我想你已經這樣做了,但更好的澄清):

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

添加插件後,你應該建立或準備項目獲取插件在行動。 Cordova cli工具會將javascript和native(android,ios等)代碼複製到platforms/%platform_name%目錄中。插件大多不適用於瀏覽器,但從不在/www目錄中(因爲該目錄中不應該有cordova.js)。

我認爲這裏的問題是你使用的jQuery切換功能。它實際上是一個切換元素顯示狀態的功能。 (見:http://api.jquery.com/toggle/

這將工作時,你模擬或運行你的Android應用程序。

<script> 
    var isKeyboardShown = false; 
    var softkeyboard = window.cordova.plugins.SoftKeyBoard; 
    $('#keyboard').click(function() { 
     (isKeyboardShown = !isKeyboardShown) ? softkeyboard.show() : softkeyboard.hide(); 
    }); 
</script>