iOS8 和 Safari 不再使用蓝牙扫描仪
Posted
技术标签:
【中文标题】iOS8 和 Safari 不再使用蓝牙扫描仪【英文标题】:iOS8 and Safari no longer working with Bluetooth scanner 【发布时间】:2014-10-23 20:45:45 【问题描述】:我有一个使用蓝牙 Opticon 扫描仪的 Web 应用程序 (http://www.opticonusa.com/products/companion-scanners)
用户点击一个字段并扫描一个条形码,然后应用程序会处理它。
在 ios7 和 Safari 下运行良好。
不再适用于 iOS8 和 Safari。经常(但不总是)扫描它时会去掉最后几个字符。它丢弃的字符数似乎有些随机。有时它确实有效。很奇怪。
我访问了其他网站 - yahoo.com、google.com 并扫描了他们的搜索框。表现出同样的行为。所以它并不特定于我的 Web 应用程序。
扫描到记事本或电子邮件始终有效。那里没有问题。就在 Safari 中。
但这是最奇怪的事情。我们打电话给扫描仪公司,他们说这是 Safari 特有的问题。他们无能为力。他们说下载 Chrome。
果然 - 它在 iPad 上的 Chrome 中完美运行!我想做的最后一件事是告诉我的用户群下载 Chrome。 :(
有人见过这样的吗?有什么信息或想法吗?我认为 iOS 上的其他网络浏览器无论如何都只是封装了 Safari 引擎,所以我什至不知道有什么区别。
任何有关这方面的信息将不胜感激。
谢谢!
【问题讨论】:
iOS8 中的字段似乎有很多错误。你看过这些链接吗? ***.com/questions/26149532/… applevis.com/blog/advocacy-apple-braille-ios-news/… 我认为蓝牙键盘错误可能是最适用的。我们在非 iOS 设备上使用条形码扫描仪,它显示为键盘,所以我假设蓝牙扫描仪显示为键盘,与蓝牙键盘存在相同的问题(丢失的字符)。 【参考方案1】:在 iOS 版本 8.2 之前,Socket CHS 7Mi 扫描仪存在问题。
随着 8.3 的更新,这个问题似乎得到了解决。
【讨论】:
ios10 好像又出现了这个问题【参考方案2】:这是 Safari 中潜在错误的症状(仅限 iOS 8)。我在 HID 模式下使用蓝牙条码扫描器时第一次遇到这个问题。使用 Notes 应用程序,我可以非常快速地扫描,不会跳过/截断字符。在 Safari 中,在最简单的 Web 表单中,具有单个输入文本字段或文本区域,字符跳过/截断是间歇性的。这并非特定于条形码扫描仪。您可以使用任何蓝牙键盘重现相同的问题,前提是您可以足够快但准确地键入,以便您知道它正在跳过/截断。如果有人认为我忽略了什么,请插话!
我的发现:
我刚刚在 iPad Air 上安装了 iOS 8.2 测试版,但问题仍然存在。 这只发生在 HID 模式下配对的蓝牙键盘上。 我在扫描时跟踪了键盘事件,这就是我发现的。 textinput 事件会针对前几个字符触发,但不会针对其余字符触发。所以我试着扫描这个文本:LOT00002。但是“T”和“2”被省略了,因为在按键事件之后没有触发 TEXTINPUT 事件。 看到粗线...
keydown keyCode=76 (L) which=76 (L) charCode=0
keypress keyCode=76 (L) which=76 (L) charCode=76 (L)
textInput 数据=L
keyup keyCode=0 which=0 charCode=0
keydown keyCode=79 (O) which=79 (O) charCode=0
keypress keyCode=79 (O) which=79 (O) charCode=79 (O)
keyup keyCode=0 which=0 charCode=0
textInput 数据=O
keydown keyCode=84 (T) which=84 (T) charCode=0
keypress keyCode=84 (T) which=84 (T) charCode=84 (T)
keyup keyCode=0 which=0 charCode=0
[MISSING textInput 事件]
keydown keyCode=48 (0) which=48 (0) charCode=0
keypress keyCode=48 (0) which=48 (0) charCode=48 (0)
textInput 数据=0
keyup keyCode=0 which=0 charCode=0
keydown keyCode=48 (0) which=48 (0) charCode=0
keypress keyCode=48 (0) which=48 (0) charCode=48 (0)
keyup keyCode=0 which=0 charCode=0
textInput 数据=0
keydown keyCode=48 (0) which=48 (0) charCode=0
keypress keyCode=48 (0) which=48 (0) charCode=48 (0)
textInput 数据=0
keyup keyCode=0 which=0 charCode=0
keydown keyCode=48 (0) which=48 (0) charCode=0
keypress keyCode=48 (0) which=48 (0) charCode=48 (0)
textInput 数据=0
keyup keyCode=0 which=0 charCode=0
keydown keyCode=50 (2) which=50 (2) charCode=0
keypress keyCode=50 (2) which=50 (2) charCode=50 (2)
keyup keyCode=0 which=0 charCode=0
[MISSING textInput 事件]
keydown keyCode=13 which=13 charCode=0
keypress keyCode=13 which=13 charCode=13
keyup keyCode=0 which=0 charCode=0
【讨论】:
iOS10 似乎又出现了这个问题以上是关于iOS8 和 Safari 不再使用蓝牙扫描仪的主要内容,如果未能解决你的问题,请参考以下文章
如何设置 Web 表单以支持移动 Safari 中的 iOS 8 信用卡扫描?