22

I am developing an Android application using Phonegap. I need to make the softkeyboard appear programatically. I am using the SoftKeyboard plugin which is found here. Can anyone tell me how to properly include this plugin & make it work? I have tried the tutorial found on the Phonegap Wiki, but the plugin is not working.

[Update] I have added the plugin to the path

com/zenexity/SoftKeyBoardPlugin/SoftKeyBoard.java

Updated plugins.xml and included

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

Then in the www folder added softkeyboard.js, and the following in index.html

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

But nothing happens, the keyboard is not displaying..

4

5 回答 5

11

这就是我让 SoftKeyBoard 在我的应用程序中工作的方式。

DroidGap 侧

  • 使用提供的文件 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
  • 在包含 phonegap javascript 后,添加到包含其他 javascript 的头部的 index.html 中:

    < 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。

希望这可以帮助你

于 2012-02-22T13:14:18.763 回答
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);
于 2012-10-18T15:08:19.857 回答
2

试试这样:

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

JS 文件中的代码并没有将其放在“plugins”命名空间中。

或者只是使用 PhoneGap 插件的完整命名空间:

window.plugins.SoftKeyBoard.show(function () {
    // success
},function () {
   // fail
});
于 2012-02-04T07:13:27.410 回答
0

通过链接。这是完整的项目:--

西蒙麦克唐纳的 SoftKeyboardPlugin

于 2013-04-26T12:48:55.010 回答
0

Cordova 3.0 + JQM 1.3.2:在 config.xml 中将“全屏”更改为“false”修复了“adjustPan”并防止我的输入在键盘显示时被覆盖。然而, blur() 不会关闭键盘,这个插件工作得很好。

对于几乎最新版本的 phonegap:

  • 在 src 中将 SoftKeyBoard.java 添加到您的应用程序包中
  • 将 softkeyboard.js 添加到 assets/www
  • 使用以下内容更新 config.xml: <feature name="SoftKeyBoard"><param name="android-package" value="com.yourAppPackage" /></feature>
  • 调用你的插件:plugins.SoftKeyBoard.hide(function() {//success }, function() {//fail });
于 2013-10-24T18:59:37.373 回答