在iPhone上使用Phonegap条形码扫描器

5
我正在尝试为iOS的JQM phonegap项目添加一个条形码扫描仪。我按照所列出的指示进行了操作,但我不确定我是否正确地执行了第一步和最后一步。
引用: 将.h、.cpp和.mm文件复制到项目的Plugins目录中。您可能需要设置zxing-all-in-one.cc的编译选项以关闭优化。
我直接将这三个文件复制到xcode的插件文件夹中。它没有给我任何错误,但也没有起作用。我不知道如何在xcode中进行编译器选项,所以我没有执行最后一步。
目前,我的应用程序仍然没有报错,并且运行扫描函数会打开带有条形码扫描仪UI的相机。问题在于它似乎既未寻找也未找到条形码,它只停留在那里什么也不做(直到您点击取消,然后它正确地显示取消消息)。
有人有任何想法是什么出了问题或者我应该去哪里看吗?

你能帮我一下吗?我正在努力让它工作,但目前出现了一个错误。错误信息是:“成功回调中的错误:networkstatus0= typeerror: 'null' is not an object”。 - SJ Reddy
虽然这与我的问题无关,但我会尝试帮助...该错误通常是由于您拥有一个空对象(从回调中获取返回参数为null,但然后尝试parameter.WasSuccessful()或其他操作)。我建议尝试打印出您正在使用的任何对象,并查看是否有任何不应为空的对象为空。如果这样做不起作用,我建议您发布一个问题,而不是在一个无关的已解决5个月的问题中进行评论。 - Twomz
谢谢你提醒我,其中一位管理员取消了我的账户,所以我不能发布问题了,无论如何还是谢谢。 - SJ Reddy
2个回答

4
如果相机被打开并且屏幕上显示扫描的用户界面,那么这意味着你已经做对了一切。问题似乎是扫描器无法检测到条形码。
请注意,使用zxing识别1D条形码(“传统”条形码)需要具备自动对焦镜头的iPhone(iPhone 4或iPhone 4S)。在移动电话镜头上检测1D条形码有点棘手,您需要适当的光线和焦点;这也是为什么发明2D代码如QR代码的一个原因。
尝试使用http://zxing.appspot.com/generator/生成QR码,将其显示在屏幕上,然后尝试使用您的应用程序扫描它。如果可以正常工作,则说明好消息,一切都没问题,但坏消息是,您的手机不适合1D条形码扫描。

这可能可以解释,因为我们现在正在使用iPod Touch进行测试。 我相信当我们尝试扫描某些内容时,我们确实尝试过QR码,但我可以再试一次,看看是否有人愿意用新的iPhone进行测试。 如果那是问题所在,我会告诉你的。 - Twomz
我们尝试了另一位员工的 iPhone 4,它可以正常工作。感谢您的帮助! - Twomz

1

这种行为的另一个解释是编译器标志。如BarcodeScanner wiki所述,您可能需要设置zxing-all-in-one.cc的编译选项以关闭优化。

在XCode4中,单击您的项目,然后在Targets下选择您的目标,转到Build Phases->Compile Sources,选择zxing-all-in-one.cc并将-O0(即破折号零)输入到Compiler flags列中。

这对我有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接