如何使用Android的Phonegap SoftKeyboard插件?

时间:2012-01-30 07:30:53

标签: javascript android cordova phonegap-plugins

我正在使用Phonegap开发Android应用程序。我需要以软件方式显示软键盘。我正在使用找到here的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
});

但没有任何反应,键盘没有显示..

5 个答案:

答案 0 :(得分:11)

这就是我在应用程序中使用SoftKeyBoard的方法。

DroidGap Side

  • 使用提供的文件SoftKeyBoard.java创建/ src / com / phonegap / plugins / SoftKeyboard
  • 添加到/res/xml/plugins.xml:

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

/assets/www支持

  • 将提供的文件softkeyboard.js添加到/ assets / www / js
  • 在您添加了其他javascripts之后添加到index.html,其中包含了phonegap javascript:

    < 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(){})();

我想也许你出错的地方不包括你的index.html中的js / softkeyboard.js。

希望这有助于你

答案 1 :(得分:9)

对于最新版本的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

在包含cordova.js文件后将其放入HTML文件中:

<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);

答案 2 :(得分:2)

试试这样:

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

JS文件中的代码不会将其放在“plugins”命名空间中。

Orjust使用PhoneGap插件完整命名空间:

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

答案 3 :(得分:0)

浏览链接。这是完整的项目: -

SoftKeyboardPlugin by Simon McDonald

答案 4 :(得分:0)

Cordova 3.0 + JQM 1.3.2:在config.xml中将“fullscreen”更改为“false”修复了“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 });