使用MUI html5+开发app,有个需求就是app打开后界面的某个输入框呀自动获取焦点,使用document.getElementById('trackinNum').focus();方式实现,在 chrome浏览器中能正常获取焦点,但是在app里就是不行,无法自动获取焦点
6***@qq.com
- 发布:2018-02-06 14:22
- 更新:2020-03-23 09:45
- 阅读:3339
MUI开发的APP中输入框或文本域不能自动获取焦点
分类:MUI
可通过nativeJS实现,下面是HelloMui示例里面的部分代码,效果可查看HelloMui的input界面,是可以自动获得焦点的。
var nativeWebview, imm, InputMethodManager;
var initNativeObjects = function() {
if (mui.os.android) {
var main = plus.android.runtimeMainActivity();
var Context = plus.android.importClass("android.content.Context");
InputMethodManager = plus.android.importClass("android.view.inputmethod.InputMethodManager");
imm = main.getSystemService(Context.INPUT_METHOD_SERVICE);
} else {
nativeWebview = plus.webview.currentWebview().nativeInstanceObject();
}
};
var showSoftInput = function() {
if (mui.os.android) {
imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);
} else {
nativeWebview.plusCallMethod({
"setKeyboardDisplayRequiresUserAction": false
});
}
setTimeout(function() {
var inputElem = document.querySelector('input');//需要获得焦点的input
inputElem.focus();
inputElem.parentNode.classList.add('mui-active'); //第一个是search,加上激活样式
}, 200);
};
mui.plusReady(function() {
initNativeObjects();
showSoftInput();
});
6***@qq.com (作者)
谢谢,这样确实可以获取焦点,还想问个问题,获取焦点后,系统会自动弹出软件盘,需求是不需要软键盘,是通过扫描枪扫的,怎样禁止软键盘打开呢
2018-02-07 10:57
Neil_HL
回复 6***@qq.com:那你就不要用input了,input聚焦必然弹起软键盘,你自己画个div,在里面再画个光标,这样就像一个input了,需要键盘输入的时候再把div换成input
2018-02-07 11:04
6***@qq.com (作者)
回复 Neil_HL: 用DIV模拟的话,无法监听到扫描枪扫描的内容啊
2018-02-07 13:34
6***@qq.com (作者)
@DCvcVloud_MUI_Neil:请问还有什么好的解决办法没有
2018-02-07 15:21
Neil_HL
回复 6***@qq.com:你的app在这一个页面的业务流程是怎样的?
2018-02-07 15:25
6***@qq.com (作者)
回复 Neil_HL:是这样的,这个app主要是用在在android系统的扫描设备里,负责将所有扫描的条形码(货物跟踪号)发送的后台保存到数据库。客户要求打开app后就可以直接扫描了,又不要弹出键盘
2018-02-07 15:35
Neil_HL
回复 6***@qq.com:扫码结果拿到了就直接发送给后台,需要input做什么事?是要在input里面显示,再认为的点击发送给后台?
2018-02-07 15:43
6***@qq.com (作者)
回复 Neil_HL: 可以不用input,,textarea这些,问题是不用的话获取不到扫描的数据,扫描事件也无法捕获
2018-02-07 17:43
Neil_HL
回复 6***@qq.com:扫描是通过你们特定的仪器还是5+的barcode?
2018-02-07 18:15
6***@qq.com (作者)
回复 Neil_HL:市场上购买的外设,说白了就是集手机和超市扫描枪功能于一身的设备,没有使用h5+的barcode
2018-02-08 08:52