【发布时间】:2015-05-28 06:55:05
【问题描述】:
我正在编写一个 Ionic 应用程序,该应用程序将用于医疗保健部门的物流。
将用于此应用程序的设备具有内置的条形码扫描仪并在 android 4.1.1 上运行。
该扫描仪在输入字段中输入数据并通过按“输入”键提交。由于在某些情况下扫描仪是我的“键盘”,我想在输入焦点或单击时隐藏键盘。
我使用离子键盘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;
}
]);
功能似乎起作用了。只有键盘不会关闭,并且似乎是被设备“强制”打开的。
有什么建议吗?
【问题讨论】:
-
已解决。必须在关闭函数上设置一个超时才能再次隐藏它。
-
您能否发布更新代码作为解决方案的答案?
标签: javascript android cordova ionic-framework ionic