【问题标题】:Using barcode scanner (like Grabba) from with-in my iOS application在我的 iOS 应用程序中使用条形码扫描仪(如 Grabba)
【发布时间】:2013-02-18 11:13:24
【问题描述】:

我的目标很简单:从条形码扫描仪读取数据。

我知道可以选择使用相机扫描条码,但根据我的经验,在不太理想的情况下,即光线不好的情况下,结果并不是很准确。因此,我正在探索是否可以通过外部设备轻松连接 iPhone/iPad,并且可以像外部键盘一样提供条形码数据。

那么,我可以读取使用外部设备扫描的条形码吗?如果是这样,我可以在不编写任何代码的情况下做到这一点,还是必须在我的应用程序中专门添加某种支持?

【问题讨论】:

  • 我正在使用 linea pro,效果很好。该 SDK 易于使用。
  • @WarrenP Linea Pro 可以像键盘一样工作吗?我和一个坐在一起,当我扫描时它没有输入任何内容。它仅与已制作和安装的应用程序一起使用。虽然我还没有访问它的文档...

标签: ios barcode barcode-scanner


【解决方案1】:

回答

任何支持 HID 模式的 iOS 兼容蓝牙扫描仪。例如,任何 Socket CHS。连接后,它的行为将与您所说的“就像外接键盘一样”完全一样。

HID 与 SDK

HID: 使用任何扫描仪作为键盘,您只能将扫描的数据输入到开放的输入字段中,用户可以在其中修改扫描的数据,并且后处理和验证的选项有限。

由于扫描仪在 iOS 中显示为键盘,因此 iOS 隐藏了屏幕键盘 - 这是有道理的……如果扫描仪是一个实际的键盘。一些扫描仪(包括 Socket CHS 7Ci 和 7Xi)提供了强制键盘的机制(在我们的 CHS 上双击电源按钮)或者应用程序可以强制键盘(参见:related* 问题)

SDK:使用 SDK 开发应用程序可提供更强大的设置并处理更复杂的用例:即使输入字段未激活,也可以扫描到应用程序,强制执行特定的扫描顺序(扫描UPC 后跟 VIN 号,反之亦然),或解析扫描的数据(将时间戳分解为年、月、日、时间)。

结论:就个人而言,我会使用 HID 模式作为一种快速而肮脏的入门方式,但会切换到最终产品的 SDK。显然,这取决于您需要/想要多少控制。

免责声明:我为 Socket Mobile 工作

【讨论】:

  • 感谢您的回复。你能给我一个我必须使用 SocketScan SDK 的例子吗?
  • 我已经更新了我的答案以解释 HID 和 SDK 之间的区别以及为什么人们可能会使用 SDK
  • 对。所以 HID 是一个更通用的解决方案,而使用 SDK 我将获得更多的控制...以更多的工作为代价...以支持不同的扫描仪。感谢您花时间发布答案。这正是我想要的。
  • 有没有办法在扫描仪(HID 模式)和软键盘之间切换,或者强制软键盘/设备键盘?连接扫描仪设备后,它会隐藏设备键盘,从而无法在其他字段中输入数据……除非先取消配对扫描仪。
  • 在 Socket CHS 上,您可以双击电源按钮来切换软键盘。其他扫描仪也支持切换软键盘,只需查看用户手册即可。
【解决方案2】:

您可以从链接下载演示

http://www.datecs.bg/en/products/Linea-Pro-iPhone-SDK/8/102

解压后运行LineaDemo即可。正在使用 Linea Pro Scanner[外部设备]进行扫描

【讨论】:

  • 这不能回答我的问题。具体来说,为什么我需要 LineaiPhoneSDK 从扫描仪设备获取输入——就像键盘输入一样?
  • 您想使用外部设备扫描条形码。所以这个演示提供了使用 Linea Pro Scanner 的扫描工具,我也使用过它,它工作正常。您只需要连接扫描仪并扫描条形码。因此,您还将使用此获取包括条形码类型在内的所有数据。
  • 谢谢,我想我现在明白了。因此,iOS 应用程序可以发送扫描命令,然后接收/解释响应,而不是使用扫描仪(设备)上的硬件按钮。带有 SDK 的模拟器会很好——用于评估。