`
cwh643
  • 浏览: 127538 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

iOS项目开发中使用了ZXing

阅读更多
我在iOS项目开发中使用了ZXing的扫描二维码功能。在此总结一下如何将ZXing集成到已有的iOS工程中,分享给大家。

集成步骤

首先去Google Code或Github将ZXing的代码下载下来,整个工程比较大,我们只需要其中涉及iOS的部分,所以最好做一些裁剪。简单来说,我们只需要保留cpp和iphone这2个文件夹,其余的全部删掉。

接着我们继续裁剪,对于cpp这个目录,只保留cpp/core/src/zxing和cpp/core/src/bigint下面的内容,其余内容也可以删掉了。但是整个目录结构必须保持原样。
完成之后如下图所示:



接下来,我们把裁剪后的zxing目录整个移动到我们的iOS项目的目录下,并且把上图中可以看到的ZXingWidget.xcodeproj文件拖动到我们的iOS工程中。

下一步,我们需要设置ZXing项目和我们原本的iOS项目之间的依赖关系。在我们的iOS项目的设置中,点击build phases tab,然后增加 Target Dependencies 和 Link binary,并且增加这些framework依赖:
a. AVFoundation
b. AudioToolbox
c. CoreVideo
d. CoreMedia
e. libiconv
f. AddressBook
g. AddressBookUI
完成之后如下图所示:


最后一步,在设置中增加如下2个header search path:

./zxing/iphone/ZXingWidget/Classes
./zxing/cpp/core/src

需要注意的是,第一个path要设置成循环查找子目录,而第二个不循环查找,如下图所示:



如果遇到"iostream file not found"问题可以把引用到“QRCodeReader.h”的文件的后缀名改成.mm。

如果遇到Undefined symbols for architecture i386:
  "std::string::c_str() const"修改:TARGETS -> Build Settings -> Apple LLVM compiler 4.2 - Language
设置C++ Standard Library的值为Compiler Default

恭喜你,完成这步之后,你就已经完成ZXing库的集成了。下面谈谈如何使用ZXing库来做二维码识别。

二维码识别

ZXing的iOS版本提供2种方法来做二维码识别功能,第一种方法比较简单,第二种方法比较复杂。我在做Demo时使用了第一种方法,做真正项目开发的时候使用了第二种方法,所以都给大家介绍一下。

使用方法一
ZXing直接提供了一个扫描二维码的View Controller,即ZXingWidgetController。在需要使用的界面代码中,加入文件依赖:
#import <ZXingWidgetController.h>
#import <QRCodeReader.h>


然后在需要扫描的时候,调用如下代码即可:
- (IBAction)scanPressed:(id)sender {
    ZXingWidgetController *widController = [[ZXingWidgetController alloc] initWithDelegate:self showCancel:YES OneDMode:NO];
    NSMutableSet *readers = [[NSMutableSet alloc] init];
    QRCodeReader *qrcodeReader = [[QRCodeReader alloc] init];
    [readers addObject:qrcodeReader];
    widController.readers = readers;
    [self presentViewController:widController animated:YES completion:nil];
}


在ZXing扫描有结果时,会调用如下回调函数:
- (void)zxingController:(ZXingWidgetController*)controller didScanResult:(NSString *)result {
    self.resultView.text = result;
}

- (void)zxingControllerDidCancel:(ZXingWidgetController*)controller {
    ;
}


本文参考了
http://www.cocoachina.com/applenews/devnews/2013/0104/5462.html
http://thierry-xing.iteye.com/blog/1815295
http://stackoverflow.com/questions/8154024/iostream-file-not-found-in-xcode-4-2
希望能帮到您
  • 大小: 86 KB
  • 大小: 29.4 KB
  • 大小: 79.5 KB
分享到:
评论

相关推荐

    在iOS和Android中使用二维码ZXing库及常见问题解决和整合后的代码

    在iOS项目中集成ZXingObjC,你可以通过CocoaPods或者手动导入源码。使用CocoaPods,只需在Podfile中添加`pod 'ZXingObjC'`,然后执行`pod install`。如果你选择手动导入,可以从GitHub上下载ZXingObjC的源码并将其...

    IOS 二维码扫描 ZBar和Zxing

    本文将详细探讨如何在iOS应用中实现二维码扫描,重点介绍ZBar和Zxing这两个库的使用方法。 首先,ZBar是一款强大的条码阅读器,支持多种格式的条形码和二维码,包括QR Code。它提供了简单易用的API,让开发者可以...

    Zxing Demo for Ios

    在iOS开发中,集成二维码和条形码扫描功能时,ZXing库是一个常见的选择。然而,开发者在使用ZXing时,常常会遇到一个问题——扫描中文内容时出现乱码。这无疑给用户带来困扰,也影响了应用的功能体验。本文将针对这...

    zxing仿微信扫描ios

    1. **集成ZXing到iOS项目** - 使用CocoaPods:在`Podfile`中添加`pod 'ZXingObjC'`,然后运行`pod install`来安装ZXing库。 - 手动集成:下载ZXing源代码,将其导入到你的项目中,并确保所有必要的文件都被包含...

    iOS二维码Demo for ZXing

    ZXing库最初由Google开发,现在已经成为了一个广泛使用的跨平台的扫码工具。 **一、ZXing库介绍** ZXing库支持多种条形码和二维码格式,包括但不限于QR Code、Data Matrix、Aztec、PDF417等。这个库提供了强大的...

    Android项目使用ZXing识别条码二维码(简单的实现).rar

    在Android开发中,ZXing(Zebra Crossing)库是一个广泛使用的开源项目,它提供了解析和...通过理解这个压缩包中的项目,你可以快速掌握在Android项目中使用ZXing的基本步骤,并在此基础上进行扩展,满足更复杂的需求。

    使用zxing开发的二维码/条形码/带logo彩色二维码例子

    总之,使用ZXing开发的二维码/条形码/带logo彩色二维码例子是一个实用的项目,它扩展了ZXing的基本功能,增加了视觉吸引力和品牌识别度。对于开发者来说,掌握这样的技术可以提升应用程序的用户体验,特别是在市场...

    xamarin.forms 使用ZXing扫描二维码

    首先,为了在 Xamarin.Forms 项目中使用 ZXing,你需要通过 NuGet 包管理器安装 `ZXing.Net.Mobile` 和 `ZXing.Net.Mobile.Forms` 包。这两个包提供了ZXing库的核心功能以及与Xamarin.Forms的集成。 安装完成后,你...

    使用zxing加密解析二维码

    确保解密过程中使用的密钥与加密时一致。 4. **数据处理**:解密后的数据可以是原始的文本、URL或其他格式,根据需求进行进一步处理。 在实际开发中,ZXing提供了Java和Android SDK,方便在各种平台上使用。对于...

    qt 的zxing,可自行生成动态库

    6. **使用动态库**:在你的Qt项目中,通过包含相应的头文件和链接库文件来使用ZXing的功能。在.pro文件中添加对ZXing库的引用,并在代码中调用其API实现二维码的读取和生成。 7. **调试与优化**:在实际使用过程中...

    zxing Iphone下载地址

    为了在Xcode中使用ZXingObjC,开发者需要进行以下步骤: 1. **安装依赖**:通过CocoaPods或Carthage添加ZXingObjC到项目的Podfile或Cartfile中,然后执行相应的安装命令。 2. **导入库**:在需要使用ZXingObjC的...

    在Android上使用ZXing识别条形码/二维码 ZXingDemo

    ZXing库提供了一个完整的扫码引擎,可以方便地集成到各种应用程序中,不仅限于Android,也适用于iOS、Java SE、.NET等平台。 **2. Android上使用ZXing** 在Android平台上,ZXing提供了专门的Android端组件——`...

    zxing_iOS_C++.zip

    1. **C++与Objective-C/Swift的互操作性**:在iOS项目中,你可以创建一个桥接头文件(.h)来引入C++的头文件,然后在Objective-C或Swift类中调用C++的函数。这种跨语言的互操作性使得ZXing库可以在苹果的开发环境中...

    简化版zxing,导入自己项目直接使用

    ZXing,全称为“Zebra Crossing”,是一款开源...无论你是想在电商应用中实现商品扫码,还是在信息传递应用中使用二维码,这个库都能为你提供强大的技术支持。只需合理利用其API,你就能轻松构建出自己的条码扫描功能。

    ZXING_XML开发包下载

    XML在ZXING中的作用可能体现在以下几个方面: 1. 配置文件:ZXING的一些设置和配置可能通过XML文件来保存和管理,例如解码参数、扫描区域等。 2. 数据交换:在处理条码数据时,XML可以作为数据交换格式,用于存储...

    zxing-zxing-3.2.1

    6. **iOS**:iOS平台的支持,使得开发者可以在Swift或Objective-C项目中轻松集成ZXing。 7. **命令行工具**:提供命令行接口,方便进行批量处理和测试。 使用ZXing库,开发者可以轻松地将条码扫描和生成功能添加到...

    iOS使用ZXingObjC二维码条形码扫描

    本篇文章将详细介绍如何在iOS项目中使用ZXingObjC进行二维码和条形码的扫描,并通过CocoaPods进行库的管理和集成。 首先,让我们了解ZXingObjC。ZXing,又名Zebra Crossing,是一个跨平台的开源项目,提供多种格式...

    ZXing源代码项目

    这个源代码项目包含了ZXing的全部源代码,供开发者研究、学习或在自己的项目中集成使用。ZXing支持多种条形码格式,如QR码、Code 128、UPC-A等,可以实现快速、准确的条码扫描功能。 在Android平台上,ZXing通常...

    android 使用zxing core 进行条形码扫描

    本项目提供了一个完整的、可运行的示例,教你如何在Android应用中使用ZXing Core进行条形码扫描,并将扫描结果显示为红色文本。 ZXing是一个强大的、多格式的一维/二维条码图像处理库,支持多种编码和解码格式,...

Global site tag (gtag.js) - Google Analytics