开源框架:ZXing

简介: 引言: 二维码的普及速度令人咋舌,现在随处的实体广告在边角处都附上一张二维码,提示用户扫描相关信息,了解更多,并且张小龙说,PC的入口在于搜索框,而手机的入口在于二维码.

引言:

二维码的普及速度令人咋舌,现在随处的实体广告在边角处都附上一张二维码,提示用户扫描相关信息,了解更多,并且张小龙说,PC的入口在于搜索框,而手机的入口在于二维码.

因为二维码解决了手机输入信息的困难.除了感叹人类的聪明之外,更多的是如何利用这已有的技术去满足我们在应用上面的需求.

当然了,内部算法不在本博文的介绍范围内,主要介绍如何使用它.




参考资料:

1:开博来的第一篇文贴:zxing2.0二维码在xcode4.2中的使用

http://blog.csdn.net/icash/article/details/7727299

2:ios中使用zxing遇到的问题

http://blog.csdn.net/zzfsuiye/article/details/8244917

3:让ZXing 支持条形码扫描

http://hi.baidu.com/397362542/item/a574ce39b267fdd12f8ec23b




如何安装:

1:ZXingWidget的托管地址如下:

http://code.google.com/p/zxing/downloads/list

2:关于库里的一些文件

不是所有的文件我们都用的到,

下载zxing2.0后,解压得到zxing-2.0文件夹,里面只保留  cpp  和 iphone 两个文件夹就可以了。


3:我比较用WorkSpace(工作空间)的方式引入第三方资源

那么有一步骤可以省去:

4:frameWorks添加如下几项:

libZXingWidget.a

AddressBook

AddressBookUI

AudioToolbox

AVFoundation

CoreMedia

CoreVideo

libiconv.dylib

完成后如下图:


5:不要忘记设置一个扫描成功时的音频文件:

widController.soundToPlay = [NSURL fileURLWithPath:[mainBundle pathForResource:@"beep-beep" ofType:@"aiff"] isDirectory:NO];

6:保持项目的C++混编译模式

首先请做如下操作:

1.请更改你的delegate文件的.m文件为.mm (请注意,如果你在项目中重命名,并不会使物理路径中的文件名被更改,所以请更改物理文件名)

MyZxingAppDelegate.m 改成 

 

MyZxingAppDelegate.mm

2.请更改你要使用zxing的项目文件的.m文件为.mm

MyZxingViewController.m 

改成 

 

MyZxing

ViewController

.mm



使用:

7:下载我的Demo 试试看:

XCode 4.6 iOS6.1 测试通过

Demo地址:猛击此处!



可能遇到的问题:

1.如果你项目中使用了zxing,但是在xcdoe升级到4.5以后出现Incompatible pointer types sending 'Class' (aka 'Class *') to parameter of type 'id<NSCopying>'错误,解决办法:重新下载更新版本的ZXing, 可以使用命令下载最新版本:svn checkout http://zxing.googlecode.com/svn/trunk/ zxing-read-only。

2.如果出现了问题Undefined symbols for architecture i386"std::string::c_str() const", referenced from。。。。,

将你项目中的Apple LLVM compiler 4.1 - language中的 c Language Dialect、c++ Language Dialect、c++ standard Library设置成下图所选的值。参考http://stackoverflow.com/questions/12665457/zxing-in-xcode-4-5-and-ios-6

3.编译成功往真机上装的时候出现Choose a destination with a supported architecture in order to run on this device ,由于ios设备不支持armv7s,所以必须将Architectures设置为armv6,但是仅仅需要改动valid architectures就行,不要改动architectures,否则容易引起真机不运行。把architectures改为$(ARCHS_STANDARD_32_BIT)就可以撞到手机上了。见http://blog.sina.com.cn/s/blog_90a0ad8d01013uuh.html

4:XCode 手贱升级到了 4.6  ZXingSDK  编译不过去了.

出现什么变量声明了没有使用的编译错误提示(可是明明使用了):

Member initializer 'bits_' does not name a non-static data member or base class

谷歌老外牛人多啊,或者说老外也遇到这个问题了,然后提问了,问答地址如下:

http://code.google.com/p/zxing/issues/detail?id=1494

里面说到将 ZXingWidget - BuildSettings - Other Warning Flags 里的 -Werror -Wno-unused-parameter 去掉,

但其实只要去掉 -Werror 就可以了, 如果 -Wno-unused-parameter  这个也去掉了会产生很多变量没有使用的警告.

此时可以编译通过了,烦恼的是  也有少许警告.




2014-02-18 16:03:17

番外篇ZXingObjC:

ZXingObjC通过名字即可知道它是干什么的,它是二维码扫描开源方面的又一力作,代码采用纯Objective-C实现,内存管理使用ARC,并且作者依旧在持续更新,那么在稳定和代码结构方面应该是优易于ZXing原本的实现.相比ZXing的使用和部署,ZXingObjC就简单很多,最关键的是,它还支持CocoaPods.那么安装起来就非常非常简单了.接下来一起来看看如何使用它.


如何安装:

ZXingObjC通过CocoaPods即可快速安装.



如何使用:



目录
相关文章
|
8月前
|
前端开发 JavaScript Java
JAVAEE框架技术之4springMVC入门
JAVAEE框架技术之4springMVC入门
140 0
JAVAEE框架技术之4springMVC入门
|
8月前
|
缓存 Java Maven
Google guava工具类库的介绍和使用
Google guava工具类库的介绍和使用
|
Java API Maven
Guava:google公司开发的一款Java类库扩展工具包
Guava:google公司开发的一款Java类库扩展工具包
395 0
Java:com.google.zxing:javase生成二维码
Java:com.google.zxing:javase生成二维码
324 0
Java:com.google.zxing:javase生成二维码
|
XML 开发框架 前端开发
3分钟带你了解:轻量级依赖注入框架Google Guice【享学Java】(下)
3分钟带你了解:轻量级依赖注入框架Google Guice【享学Java】(下)
|
druid Java 程序员
3分钟带你了解:轻量级依赖注入框架Google Guice【享学Java】(上)
3分钟带你了解:轻量级依赖注入框架Google Guice【享学Java】(上)
|
Web App开发 缓存 Dart
Google Sky 开源项目:不使用 JAVA 开发 120 FPS 的安卓应用
作为移动操作系统市场占有率最高的系统,Android 经常因不流畅和卡顿而遭人诟病。甚至很多Android 应用都达不到称得上“流畅”的 60 FPS。
235 0
Google Sky 开源项目:不使用 JAVA 开发 120 FPS 的安卓应用
|
数据库 Android开发 开发者
GreenDAO系列之(1)入门
# 关于greenDao ## 简介 greenDAO 是一个开源的ORM数据库框架。它帮助开发者从日常的数据库的读写sql语句中解放出来,开发者只需要关注具体的Java对象,就能够进行数据库的访问操作。 ![image](http://greenrobot.org/wordpress/wp-content/uploads/greenDAO-orm-320.png) ## gree
2747 0