【问题标题】:How to use Phonegap SoftKeyboard Plugin for Android?如何使用适用于 Android 的 Phonegap SoftKeyboard 插件?
【发布时间】:2012-02-22 01:22:44
【问题描述】:

我正在使用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
});

但是什么也没发生,键盘没有显示..

【问题讨论】:

  • @Nanne 没有任何反应,没有键盘显示!
  • 你有没有在成功/失败部分中添加任何东西来调试它是否真的失败/
  • 是的,已经测试了警报,但没有任何反应

标签: javascript android cordova phonegap-plugins


【解决方案1】:

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

SoftKeyboardPlugin by Simon McDonald

【讨论】:

    【解决方案2】:

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

    对于几乎最新版本的 phonegap:

    • 将 SoftKeyBoard.java 添加到 src 中的应用程序包中
    • 将 softkeyboard.js 添加到 assets/www
    • 更新 config.xml 为: &lt;feature name="SoftKeyBoard"&gt;&lt;param name="android-package" value="com.yourAppPackage" /&gt;&lt;/feature&gt;
    • 调用你的插件:plugins.SoftKeyBoard.hide(function() {//success }, function() {//fail });

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 键盘在调用后消失?任何想法?使用 iscrollview、cordova 2.9.0、jqm 1.3.2
      【解决方案4】:

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

      DroidGap 侧

      • 创建 /src/com/phonegap/plugins/SoftKeyboard 并在里面提供文件 SoftKeyBoard.java
      • 添加到/res/xml/plugins.xml:

        &lt; plugin name="SoftKeyBoard" value="com.phonegap.plugins.SoftKeyboard.SoftKeyBoard" /&gt;

      /assets/www

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

        &lt; script type="text/javascript" charset="utf-8" src="js/softkeyboard.js"&gt;&lt;/script&gt;

      如果您在设备上或使用 Ripple 之类的东西,则可以调用以下命令:

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

      如果你想确保命名空间可用,或者类似的东西,这将防止未定义的问题:

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

      我认为您出错的地方可能是您的 index.html 中没有包含 js/softkeyboard.js。

      希望对你有帮助

      【讨论】:

      • 它工作但如何知道键盘隐藏和显示事件?我使用了这个代码 ((((window || {}).plugins || {}).SoftKeyBoard || {}).show || function(){})();
      • 如何在javascript中调用EditText的上述函数onfocusonclick
      • 在我的情况下,键盘显示然后突然消失。为什么会这样?
      • 和上面的评论有同样的问题,有什么想法吗?
      【解决方案5】:

      试试这样:

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

      JS文件中的代码没有把它放在“plugins”命名空间中。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-04-28
        • 2012-11-22
        • 2013-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多