状态的状zhuang
状态的状zhuang
  • 发布:2020-11-25 22:33
  • 更新:2022-08-24 18:54
  • 阅读:3788

关于input在 PDA环境中扫描,无法清空input的情况

分类:uni-app

开发PDA实现扫描录入,由于uniapp不支持原生input的keydown事件,所以无法判断回车键。

这边使用的是 @confirm事件,实现回车提交,但是测试中遇到了问题,每扫描几次就会间隔性出现 input未被清空的情况,就会导致和下次扫描数据一起提交。实际测试发现如果使用软键盘提交回车没有出现这种情况,怀疑可能扫描录入的数据填充的比较快。因为这个问题研究了很多天,并在社区搜索相关解决方案,目前碰到的最妥善的方法可能就是监听广播,直接原生获取扫描数据。
但是根据大家的描述来看,广播模式似乎只支持 android 8.0 以上的设备,而我测试的PDA版本为5.1,在设置中也确实没有找到相关设置,如果使用该方式可能需要更换设备,所以广播应为最后的处理手段。实际上采集录入的最佳方式还是直接扫描到录入框,但是受到框架的一定限制让我感到十分无奈。

不过就在刚才我突然灵机一动,既然input无法更新视图,清空录入框中的数据,那我为什么不使用 v-if 将他们重新渲染呢?最终经过测试,完美实现预期效。

     <view v-if="bool">  
        <input class="input" @confirm="confirm1" v-model="value" key="1" auto-focus="autofocus" />  
    </view>  
    <view v-else>  
        <input class="input" @confirm="confirm1" v-model="value" key="2" auto-focus="autofocus" />  
    </view>  

当然目前只是通过的测试,无法保证在后面实际应用中会导致什么异常,先将方法分享出来,如果有异常我再继续在帖子下面回复,如果大家有更好的方式也请分享给我一下,十分感谢!

附件我上传了测试的视频

1 关注 分享
pure111

要回复文章请先登录注册

2***@qq.com

2***@qq.com

类似这样调用清除就没有问题
cleanscanResult:function () {
this.autoFocus = false;
setTimeout(()=>{
this.scanResult="";
this.autoFocus = true;
this.hideKeyboard()
this.scanResult="";
},200)
},
2022-08-24 18:54
z***@126.com

z***@126.com

input改成单向:value绑定,加一个中间属性,使用computed方法也可以实现清空
2022-03-29 11:11
s***@dhysmz.com

s***@dhysmz.com

我也遇到了这个问题,希望官方能解决一下
2021-12-05 20:35
qsh

qsh

有没有代码啊
2021-09-13 17:00
1***@qq.com

1***@qq.com

说半天,你倒是把代码贴出来呀
2021-07-12 16:38
t***@163.com

t***@163.com

你尝试把input框清除代码改成同步的试试
2021-06-23 18:50
状态的状zhuang

状态的状zhuang (作者)

现在使用nvue 了,因为nvue下的input点击页面不会失焦,也不存在无法情况input值的情况,所以不用使用v-if,避免了重新渲染聚焦带来的软键盘显示。 但是新进入页面和切换input还是会导致软键盘的显示。
软键盘确实带来了很多问题。 如果可以支持 softinpumodet stateAlwaysHidden ,应该可以解决这个问题。
最后nvue下的input 扫描 和 硬键盘无法触发@confirm事件。你可能需要通过@input 判断字符变化的方式来实现扫描录入。
PDA开发最终需要解决的两大问题,我这边开了一个求助贴,大家可以看一下。
https://ask.dcloud.net.cn/question/123367?notification_id-925777__rf-false
2021-06-04 11:00
铅云

铅云

你的js是怎么写的啊
2021-05-10 17:29
铅云

铅云

可以看下你的代码吗
2021-05-10 17:28
7***@qq.com

7***@qq.com

回复 s***@163.com :
可以吗?我连续扫的时候还是会出现
2021-04-22 19:22