jjzjj

android - 在phonegap中模糊隐藏软键盘

coder 2023-12-09 原文

我有一个 PhoneGap 应用程序,它工作正常。唯一困扰我的是 PhoneGap 处理软键盘的方式;当输入模糊时它不会隐藏。它确实在 iOS 中执行此操作,但在 Android 中加载新页面时它甚至会保留。

我看过这个: http://wiki.phonegap.com/w/page/27915465/How%20to%20show%20and%20hide%20soft%20keyboard%20in%20Android

还有这个: https://github.com/phonegap/phonegap-plugins/tree/master/Android/SoftKeyboard

但是他们都不适合我,有什么想法吗?

问候, 埃里克

最佳答案

你链接到的插件对我有用(有完全相同的问题):

$("#eingabe").blur(); //for ios
var softkeyboard = window.cordova.plugins.SoftKeyBoard;
softkeyboard.hide();

您可能使用了 Cordova 2.0.0(或更高版本)并且没有修改插件文件(它们是为 Phonegap < 2.0="">

这是更新后的文件(我使用的):

软键盘.js

cordova.plugins = cordova.plugins || {};

cordova.plugins.SoftKeyBoard = {
show: function (win, fail) {
    return cordova.exec(
        function (args) { if (win !== undefined) { win(args); } },
        function (args) { if (fail !== undefined) { fail(args); } },
        'SoftKeyBoard', 'show', []
    );
},

hide: function (win, fail) {
    return cordova.exec(
        function (args) { if (win !== undefined) { win(args); } },
        function (args) { if (fail !== undefined) { fail(args); } },
        'SoftKeyBoard', 'hide', []
    );
},

isShowing: function (win, fail) {
    return cordova.exec(
        function (args) { if (win !== undefined) { win(args); } },
        function (args) { if (fail !== undefined) { fail(args); } },
        'SoftKeyBoard', 'isShowing', []
    );
}
};

软键板.java

package org.apache.cordova.plugins;

import org.json.JSONArray;
import android.content.Context;
import android.view.inputmethod.InputMethodManager;
import org.apache.cordova.api.Plugin;
import org.apache.cordova.api.PluginResult;

public class SoftKeyBoard extends Plugin {
public SoftKeyBoard () { }

public void showKeyBoard () {
    InputMethodManager mgr = (InputMethodManager) cordova.getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
    mgr.showSoftInput(webView, InputMethodManager.SHOW_IMPLICIT);
    ((InputMethodManager) cordova.getActivity().getSystemService(Context.INPUT_METHOD_SERVICE)).showSoftInput(webView, 0);
}

public void hideKeyBoard() {
    InputMethodManager mgr = (InputMethodManager) cordova.getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
    mgr.hideSoftInputFromWindow(webView.getWindowToken(), 0);
}

public boolean isKeyBoardShowing() {
    // if more than 100 pixels, its probably a keyboard...
    int heightDiff = webView.getRootView().getHeight() - webView.getHeight();
    return (100 < heightDiff);
}

public PluginResult execute(String action, JSONArray args, String callbackId) {
    if (action.equals("show")) {
        this.showKeyBoard();
        return new PluginResult(PluginResult.Status.OK, "done");
    } else if (action.equals("hide")) {
        this.hideKeyBoard();
        return new PluginResult(PluginResult.Status.OK);
    } else if (action.equals("isShowing")) {
        return new PluginResult(PluginResult.Status.OK, this.isKeyBoardShowing());
    } else {
        return new PluginResult(PluginResult.Status.INVALID_ACTION);
    }
}
}

修改config.xml

还要确保在“res/xml/config.xml”中添加以下行:

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

关于android - 在phonegap中模糊隐藏软键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10500364/

有关android - 在phonegap中模糊隐藏软键盘的更多相关文章

  1. ruby - 在 Ruby 中用键盘诅咒数组浏览 - 2

    我正在尝试在Ruby中制作一个cli应用程序,它接受一个给定的数组,然后将其显示为一个列表,我可以使用箭头键浏览它。我觉得我已经在Ruby中看到一个库已经这样做了,但我记不起它的名字了。我正在尝试对soundcloud2000中的代码进行逆向工程做类似的事情,但他的代码与SoundcloudAPI的使用紧密耦合。我知道cursesgem,我正在考虑更抽象的东西。广告有没有人见过可以做到这一点的库或一些概念证明的Ruby代码可以做到这一点? 最佳答案 我不知道这是否是您正在寻找的,但也许您可以使用我的想法。由于我没有关于您要完成的工作

  2. 安卓apk修改(Android反编译apk) - 2

    最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路

  3. Ruby隐藏与覆盖 - 2

    我刚刚了解到,在Java中,覆盖和隐藏之间是有区别的(静态方法是隐藏的,而不是覆盖),这意味着Java使用早期绑定(bind)和后期绑定(bind)。是否有与方法隐藏类似的东西,或者它只是具有方法重写? 最佳答案 Java具有三种不同的“方法”:实例方法,静态方法和构造函数。Ruby只有一个:实例方法。在Java中,静态方法的行为必须不同于实例方法,因为类不是对象。它们没有类,因此也没有父类(superclass),因此没有要覆盖的内容。在Ruby中,类与其他任何对象一样都是对象,它们具有一个类,该类可以具有父类(superclas

  4. ruby-on-rails - 使用 Rails (Tire) 和 ElasticSearch 进行模糊字符串匹配 - 2

    我有一个Rails应用程序,现在设置了ElasticSearch和Tiregem以在模型上进行搜索,我想知道我应该如何设置我的应用程序以对模型中的某些索引进行模糊字符串匹配。我将我的模型设置为索引标题、描述等内容,但我想对其中一些进行模糊字符串匹配,但我不确定在何处进行此操作。如果您想发表评论,我将在下面包含我的代码!谢谢!在Controller中:defsearch@resource=Resource.search(params[:q],:page=>(params[:page]||1),:per_page=>15,load:true)end在模型中:classResource'Us

  5. ruby-on-rails - Rails 4 真实性 token - 在 header 和表单隐藏输入中? - 2

    我正试图在Rails中获得完整的页面缓存,但我在CSRF方面遇到了很大的障碍——或者可能只是我对它的理解。我目前有form_authenticity_token存储在cookie中的字符串,JS可以使用该cookie访问和重写header标签。我在生成的HTML中有两个地方可以找到标记:1)在头部2)在表单的隐藏输入元素中如前所述,这些哈希值彼此不同(在未启用缓存的开发模式下)。他们为什么不同?为什么我可以删除headmeta标签并保留表单输入并且允许请求​​?然而,当我删除表单输入标签并保留标题时,请求被拒绝了吗?实际上这意味着head标签是无用的,不是吗?我可以将表单输入标签重写为

  6. Ruby:模糊测试所有 unicode 字符(UTF8/编码/字符串操作) - 2

    我无法遍历整个unicode字符范围。我到处找...我正在构建一个模糊器,并希望将所有unicode字符(一次一个)嵌入到一个url中。例如:http://www.example.com?a=\uff1c我知道有一些内置工具,但我需要更多的灵active。如果我能像下面那样做:"\u"+"ff1c"那就太好了。这是我得到的最接近的:char="\u0000"...#withiniterationchar.succ!...但在字符"\u0039"之后,即数字9,我将得到"10"而不是":" 最佳答案 您可以使用pack将数字转换为UT

  7. 驱动开发:内核无痕隐藏自身分析 - 2

    在笔者前面有一篇文章《驱动开发:断链隐藏驱动程序自身》通过摘除驱动的链表实现了断链隐藏自身的目的,但此方法恢复时会触发PG会蓝屏,偶然间在网上找到了一个作者介绍的一种方法,觉得有必要详细分析一下他是如何实现的进程隐藏的,总体来说作者的思路是最终寻找到MiProcessLoaderEntry的入口地址,该函数的作用是将驱动信息加入链表和移除链表,运用这个函数即可动态处理驱动的添加和移除问题。MiProcessLoaderEntry(pDriverObject->DriverSection,1)添加MiProcessLoaderEntry(pDriverObject->DriverSection,

  8. ruby-on-rails - 在 Ruby on Rails 中隐藏字段 - 2

    我的数据库中有一个名为IP的字段,当他在我的Rails内置博客中发送消息时,我将用户IP(在#create方法中)放在该字段中。但是当我想以另一种格式(JSON)查看文章时,该字段是可见的。如何隐藏字段IP? 最佳答案 您可以在Controller中的格式block中执行此操作,如下所示:respond_todo|format|format.json{render:json=>@user,:except=>[:ip]}#orwithoutformatblock:@user.to_json(:except=>:ip)end如果你想普遍

  9. ruby - 为什么 Gosu 隐藏我的鼠标指针? - 2

    我正在使用Gosugem进行一些图形编程。问题是,当我创建一个窗口时,我的鼠标指针被隐藏了。我可以猜到鼠标在某个时刻的位置,我可以凭直觉点击,但我的用户可能不会。如何显示指针? 最佳答案 如果你想使用系统光标你可以这样做classWindow查看libgosu的文档RubyGosurdocReference/Window 关于ruby-为什么Gosu隐藏我的鼠标指针?,我们在StackOverflow上找到一个类似的问题: https://stackoverf

  10. ruby-on-rails - 使用 Barby gem 打印 - 条码图像模糊 - 2

    有人使用Barbygem(https://github.com/toretore/barby)来生成和打印条形码吗?我正在生成和打印png条形码文件,但它们变得模糊不清。请注意,生成的PNG文件看起来很棒,即使在放大条形图时也是如此,但打印时边缘模糊。我正在使用同一台打印机打印与我在其他地方获得的相同尺寸和格式的条形码,它们看起来漂亮而清晰。这是我正在使用的代码,以防有人对我如何让它看起来更好有任何想法。它目前无法使用,因为扫描仪无法读取它。我注意到创建的png有72dpi,似乎没有办法让它更高。这可能与此有关,也可能无关。require'barby'require'barby/bar

随机推荐