gpt4 book ai didi

javascript - IONIC 键盘隐藏输入焦点

转载 作者:太空狗 更新时间:2023-10-29 14:09:03 28 4
gpt4 key购买 nike

我正在编写一个 Ionic 应用程序,将用于医疗保健部门的物流目的。
将用于此应用程序的设备具有内置条形码扫描仪并在 android 4.1.1 上运行。
此扫描仪在输入字段中输入数据并通过按“输入”键提交。由于在某些情况下扫描仪是我的“键盘”,我想在输入焦点或点击时隐藏键盘。

我使用 ionic 键盘 cordova 插件编写了以下指令:

directives.directive("showKeyboard", [
function() {
var linkFn = function(scope, element, attrs) {
console.log(scope);
console.log(element);
console.log(attrs);
if(!window.cordova || !window.cordova.plugins.Keyboard) return; // Check for cordova keyboard plugin

if(element[0].nodeName.toLowerCase() != 'input') return; // check for input

if(attrs.type.toLowerCase() != 'password' && attrs.type.toLowerCase() != 'text') return; // check for type of input

element.bind("focus click",
function(e) {
e.preventDefault();
if(scope.$eval(attrs.showKeyboard)){
console.log('show')
window.cordova.plugins.Keyboard.show();
}
else {
console.log('hide');
cordova.plugins.Keyboard.close();

}
}
);
};

var keyboardDirective = {
restrict : 'A',
link: linkFn
};

return keyboardDirective;

}
]);

功能似乎有效。只有键盘不会关闭,似乎被设备“强制”打开。

有什么建议吗?

最佳答案

我尝试使用您的指令来抑制默认 native 键盘以显示替代键盘,但发现在调用 hide 关闭键盘之前我必须使用 100 毫秒的 $timout(以解决竞争条件)。但是,它会产生闪烁现象,因此不是最佳解决方案。我还没有尝试过的另一个想法是通过一个自定义插件在 Java 中抑制 Android 端的键盘,

InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);

imm.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0);

关于javascript - IONIC 键盘隐藏输入焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30499237/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com