0

我可以使用 ZXing Library 并在我的 iphone 应用程序后台扫描二维码吗?我不希望相机覆盖有寻找 qr 码和取消按钮的正方形(如 ScanTest 示例中所示)。我需要的是按下扫描按钮将激活二维码的读取,当二维码被读取时,如何将文本返回到我的应用程序,以便我可以在屏幕上的 UILabel 中显示它。

任何人都可以为此在 Objective-C 中显示一些示例代码吗?谢谢。

4

2 回答 2

1

我做了类似的事情,可以为您提供一些指导,但不能分享源代码。

看看 ZXingWidgetController.mm,.h 文件。这是一个功能齐全的二维码扫描应用程序,您可以对其进行编译,因此可以对其进行逆向工程,使其仅包含后端代码。编辑 .h 使类扩展 NSObject 而不是 UIViewController,然后删除所有作为 GUI 对象的类属性和实例变量。

这将导致 xcode 在 .mm 文件(willAppear 等)中找到并标记您不再需要的所有方法和变量,并带有警告/错误。大部分代码都可以删除,但请注意将分配/解除分配移动到构造函数/解构函数。

在 viewController 中你可以创建这个类的一个实例,然后调用这个类开始扫描。您需要修改 ZXingWidgetController.mm 文件中的 didDecodeImage,使其在成功从 QR 码获取结果时执行您希望它执行的操作。一种可能性是修改构造函数以将父视图控制器作为参数,将其作为委托 (__weak) 存储在实例变量中,然后使用它在 didDecodeImage 方法中调用其函数之一。其他人可能会使用通知将数据传回您的主代码。

希望这可以帮助!

于 2012-07-31T19:45:03.450 回答
0

zxing objc 目录中有一组类在CA 级别而不是 UIView 级别运行,这可能比在 UIViewController 级别运行的小部件更容易修改。

不过,这仍然需要稍作调整,因为核心捕获代码会跟踪视图是否在屏幕上,以自动开始和停止帧的捕获。

于 2012-08-01T03:13:09.143 回答