Passbook

Passbook


技术博客http://www.cnblogs.com/ChenYilong/ 
新浪微博http://weibo.com/luohanchenyilong 

Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook
Passbook

Passbook
Passbook 
技术博客http://www.cnblogs.com/ChenYilong/ "新浪微博http://weibo.com/luohanchenyilong "
Passbook Passbook
电子商务 
年开始研发NFC,并且目前已经开始申请相关的专利
Passbook
Passbook简介 
• Passbook是苹果公司于北京时间2012年6月12日上午,在全球开发者大会 
(WWDC)上宣布了iOS 6系统将提供操作一个全新的应用--Passbook 
• 这是一款可以存放登机牌、会员卡和电影票的工具。该功能将整合来自各类 
服务的票据,包括电影票、登机牌、积分卡和礼品卡等

*60 
• 商标 logo:58*58 最好只使用纯色,不要增加效果 
• 缩略图 thumbnail:200*200 
• 背景图 background(background-568@2x.png):640*960/ 640*1136 
• 条带图 strip.png:640*244 
,!
"passTypeIdentifier" :"pass.cn.itcast.FreeCoffee",!"serialNumber" : "001",!
"teamIdentifier" : "J9XHDK444E",!
"organizationName" : "itcast",!
"description" : "优惠券 蓝山咖啡1杯",!
"logoText" : "爱心咖啡",!
"foregroundColor" : "rgb(255, 255, 255)",!"backgroundColor" : "rgb(135, 129, 189)",!"labelColor" : "rgb(45, 54, 129)" 
}!

Passbook
创建Pass Type ID 
PassbookPassbook
注册Pass Type ID 
PassbookPassbook
确认Pass Type ID 
PassbookPassbook
创建Pass Type ID验证字 
PassbookPassbook
选择对应的Pass Type ID 
PassbookPassbook
申请验证字 
PassbookPassbook
生成并下载验证字 
PassbookPassbook
将验证字导入到钥匙串管理器 
PassbookPassbook
继续完善pass.json--二维码 
"barcode" : {!
“message" : “用户姓名、手机号码、优惠额度8折",! "format" :"PKBarcodeFormatQR",!"messageEncoding" : "iso-8859-1"!
},
• 格式:Ø PKBarcodeFormatQR
Ø PKBarcodeFormatPDF417 ØPKBarcodeFormatAztec • messageEncoding:
Passbook
添加优惠券内容 
"coupon" : {! "primaryFields" :! [!
{!
"key" : "offer",! "label" : "蓝山咖啡",!"value" : "免费" 
} ]! } 
Passbook
添加图片&manifest.json 
作为密码导出passkey.pem密钥文件 • 如果要用更复杂的密码生成指纹文件,可以直接修改123456
导出WWDR文件 
PassbookPassbook
生成签名文件 
• 在终端输入:
 
Passbook
压缩生成pass文件 • 在终端输入:
zip -r freecoffee.pkpass manifest.json pass.json
signature logo.png logo@2x.png icon.png icon@2x.png
strip.png strip@2x.png
提示:也可以使用其他压缩工具压缩,但是注意只能压缩pass包含的文 件,不能包含其他的文件 
Passbook
生成的咖啡优惠券 
PassbookPassbook
Pass的获取方式 
• 邮件• 网站• 应用程序内部(通过网络服务器实现)
Passbook
Passbook Passbook Passbook
Passbook Passbook Passbook
二维码的生成 
• 从iOS7开始集成了二维码的生成和读取功能•此前被广泛使用的zbarsdk目前不支持64位处理器
• 生成二维码的步骤:1. 导入CoreImage框架2.通过滤镜CIFilter生成二维码
• 二维码的内容(传统的条形码只能放数字): Ø纯文本Ø 名片Ø URL
Passbook
生成二维码 
// 1. 实例化二维码滤镜 CIFilter *filter = [CIFilterfilterWithName:@"CIQRCodeGenerator"];! // 2. 恢复滤镜的默认属性 [filter setDefaults];!
!
// 3. 将字符串转换成NSData NSData *data = [strdataUsingEncoding:NSUTF8StringEncoding];!
!
// 4. 通过KVO设置滤镜inputMessage数据!
[filter setValue:data forKey:@"inputMessage"];!
!
// 5. 获得滤镜输出的图像 CIImage *outputImage = [filter outputImage];!
!
// 6. 将CIImage转换成UIImage,并放大显示!
return [UIImage imageWithCIImage:outputImagescale:20.0 orientation:UIImageOrientationUp]; 
Passbook
读取二维码 
• 读取二维码需要导入AVFoundation框架• 利用摄像头识别二维码中的内容(模拟器不行)
1. 输入(摄像头)2. 由会话将摄像头采集到的二维码图像转换成字符串数据 3. 输出(数据)4. 由预览图层显示扫描场景 
Passbook
设置拍摄会话 
// 1. 实例化拍摄设备 AVCaptureDevice *device = [AVCaptureDevice
defaultDeviceWithMediaType:AVMediaTypeVideo];!
// 2. 设置输入设备 AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device
error:nil];!
// 3. 设置元数据输出 // 3.1 实例化拍摄元数据输出AVCaptureMetadataOutput *output = [[AVCaptureMetadataOutput alloc] init];! // 3.3 设置输出数据代理 [output setMetadataObjectsDelegate:selfqueue:dispatch_get_main_queue()];! // 4. 添加拍摄会话 // 4.1实例化拍摄会话 AVCaptureSession *session = [[AVCaptureSession alloc] init];!
// 4.2 添加会话输入 [session addInput:input];!
// 4.3 添加会话输出 [session addOutput:output];!
// 4.3 设置输出数据类型,需要将元数据输出添加到会话后,才能指定元数据类型,否则会报错 [output setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode]]; 
Passbook
设置拍摄视频预览图层 
// 5. 视频预览图层 // 5.1 实例化预览图层 
AVCaptureVideoPreviewLayer *preview = [AVCaptureVideoPreviewLayerlayerWithSession:_session];!
preview.videoGravity =AVLayerVideoGravityResizeAspectFill;! preview.frame = self.view.bounds;!
// 5.2 将图层插入当前视图 [self.view.layerinsertSublayer:preview atIndex:100];!self.previewLayer = preview;!
!
// 6. 启动会话 [_session startRunning]; 
Passbook
Passbook PassbookPassbook

© chenyilong. Powered by Postach.io
上一篇:kafka describe 显示结果解释


下一篇:使用XCode7打包动态库(Framework)