1***@qq.com
1***@qq.com
  • 发布:2023-08-30 14:05
  • 更新:2024-07-22 18:31
  • 阅读:1029

【报Bug】PDA扫描枪,input获取焦点扫码后,按 实体键【返回】会弹出软键盘,会把页面顶起且黑屏

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11

HBuilderX类型: 正式

HBuilderX版本号: 3.8.12

手机系统: Android

手机系统版本号: Android 7.1.1

手机厂商: 东集(Seuic)

手机机型: AUTOID Q7

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

点击跳转页面,获取input焦点,用扫描枪扫码后快速【返回】实体键

预期结果:

返回后不弹出软键盘,并且不顶起页面,不出现黑屏

实际结果:

返回后弹出软键盘,并且顶起页面,出现黑屏

bug描述:

PDA扫描枪,跳转页面后页面内有个输入框,获取焦点扫码后,按实体键返回会弹出软键盘,会把页面顶起且黑屏。
HBuilderX和CLI方式都试过都有这个问题。
老版本的 HBuilderX没有这个问题,不知从哪个版本出现的这个问题。

2023-08-30 14:05 负责人:无 分享
已邀请:
w***@gmail.com

w***@gmail.com

这情况应该是在按返回的那一刻系统才检测到输入状态,要唤起软键盘,但是你已经按返回了,键盘唤起完成后已经回了首页了,没有输入框了就给卡了。

我之前做过类似读卡的需求,用Input可能就不太方便了,你可以不用输入框,而是监听keydown事件。扫码固件应该能设置一个特定的结尾,例如回车,如果收到回车就把之前记录下来的字符串作为扫码结果就好了,可参考如下代码

let keys = '';  
document.addEventListener('keydown', function (e) {  
    if (e.key === 'Enter') {  
        alert('Enter' + keys);  
        keys = '';  
    } else {  
        keys += e.key;  
    }  
});
  • w***@gmail.com

    更正一下,APP和小程序下是没有document的,应该用plus的api,参考代码


    let serial = ''  
    plus.key.addEventListener("keydown", (e) => {
    // 回车键
    if (e.keyCode == 66) {
    serial = ''
    } else {
    // code转按键
    serial = codeToKey(e.keyCode)
    }
    })

    2023-09-05 16:06

  • 1***@qq.com (作者)

    回复 w***@gmail.com: 小程序也不支持plus。 这个问题在老版本的 HBuilderX里面是没有出现的,不知道在哪个版本升级之后出现的,跟官方版本升级有很大关系。

    2023-09-06 14:07

fe_kkw

fe_kkw

大佬,最后有解决这个问题吗

  • 1***@qq.com (作者)

    好像是没有

    2024-07-11 10:06

2***@qq.com

2***@qq.com

mounted() {
console.log('1111')
plus.key.addEventListener('keydown', function(e){
//事件对象兼容
console.log("键盘按键==",e )

         },false);  

}, 大佬们,这个为啥不触发呢,pda上的app调用的。解决了吗

要回复问题请先登录注册