背景:现有一个app端项目,应用需要通过pda扫码获取数据。目前,聚焦输入的方式是,页面准备一个input,然后pda将扫码内容输入到input内。 注:目前是采用安卓端系统自带的软键盘模拟的输入。
开发工具版本:
- hbuilder: 3.x(最新版本)
- app-vue 模式
测试平台:
安卓:5.x
问题:
现在有一个问题是,Input在捕获pda输入内容时,会出现输入数据不全,文本内容被截断的情况。二维码内的数据稍稍多一点,就会出现输入内容不全,字符被截断的情况(这还是限于二维码内容只是非中文的情况)。如果二维码的内容包含中文的话,输入的数据差异就会更大。简直无法和原二维码码内的数据比对。
期望结果: 无论二维码内包含多少内容(正常情况就行,非极端情况),只要在input在pda扫码时,触发confirm过后,能够完整拿二维码内包含的数据。
个人目前想到的解决方案:
- 外接物理键盘模拟pda扫码输入,但目前这种方案,不太可行。
愤青 (作者)
获取内容有有残缺,后去input的value的确也是不全的。我是通过双向绑定来获取值的。目前我改变了二维码的规则,之前二维码包含有中文,我现在全部去掉中文内容。但是还是会出现后去内容不全的情况。我想的扫码内容的输入,实际是通过模拟键盘输入,这样单个字符的输入,就会出现效率问题,输入慢。所以,我又通过通过定时器延时获取value。二维码规则简单的话,还是能够规避问题的。但是,无法理解的问题是,导致输入效率低,获取value内容残缺问题到底出在哪里
2022-03-13 17:09
愤青 (作者)
在放置input元素的页面,包括有video元素,和scroll-view等内容。我想是不是渲染线程的原因到导致输入的效率低下,获取内容残缺。目前我是在一个板载安卓系统的大屏上开发的,开发过程中,经常遇到和手持安卓设备相悖的性能问题。比如一个区域滚动,scroll-view列表。在移动小屏设备,体验就非常好,而换了大屏那个scroll-view列表就贼卡。上面的截图就是我开发测试用的大屏配置。
2022-03-13 17:15
DCloud_UNI_LXH
回复 愤青: 调用 uni.scanCode 后在 success 回调中获取到的内容有残缺?
2022-03-14 10:45
愤青 (作者)
回复 DCloud_UNI_LXH: 不是scanCode,而是pda扫码枪扫码。两个扫码机制是不一样的
2022-03-14 15:06
DCloud_UNI_LXH
回复 愤青: pda扫码获取数据是正常的,如果只显示在页面上也是正常的。只有赋值给 input 会出现内容确实的情况?
2022-03-14 15:35
愤青 (作者)
回复 DCloud_UNI_LXH: 无论是pda扫码显示到input的框内的值,还是最后拿到的value,其结果都是一致的。这可能是页面包含其他内容的原因,放置input元素的页面,还有video,页面滚动的长列表。可能是视图层的渲染影响了pda扫码的输入。在这之前,我已经尝试,只在包含单独input元素的页面进行输入,效果就还理想。但是目前这种情况,我也不知道怎么优化。
2022-03-14 17:03