当前位置: 首页 > 工具软件 > passbook Demo > 使用案例 >

iOS 如何开启Passbook

何琨
2023-12-01

事出有因

之所以想了解这个技术是因为今天看了场电影,用微票儿购买的《荒野猎人》的电影票,只为欣赏小李子能赢得奥斯卡的演技。可是“把玩”微票儿的时候,发现购买的电影票据右下角有一个iPhone里面的wallet标志按钮,原谅土包子的我之前并没有见过这个,也没注意过。但是今天恰巧看到了觉得甚是神奇,使用过Apple Pay,但没用过“凭证”,

今日一看,甚是炫酷,不愧是装逼圣器,于是萌生了了解这个技术并写到我的博客里的想法···

技术前景

如果说Wallet在之前不是很火的话,那我想说它马上要火,因为Apple Pay的火热很可能会为“凭证”造势,使用量会增高,不管其他用户怎么想,我觉得很好,我觉得可用。就像一个钱包里面放上会员卡、优惠券一样,真正使iPhone物尽其用。

不管用户量的多少,作为一名iOS开发人员,没有理由不学习这个技术,毕竟这是我们丰富自我的食粮。不吃饱饭怎么上班啊?所以赶紧学习吧!

Passbook

这里附上苹果官网上的文章《使用Passbook》给需要的人参考。

博客正文

这又是一篇比较老的博客了,因为Passbook是iOS6出现的时候出现的,所以时间有那么一丢丢长,资料有那么一丢丢的老,但是技术的核心不变,我也不废话,附上原文地址,希望能给需要帮助的同行一丢丢帮助。

今天只做摘抄,摘抄代码部分资料,需要详细博客的朋友劳驾转到原文地址仔细阅读。

Pass Kit编程:实例:MyPass实例设计与说明

下面我们通过一个实例(MyPass)介绍一下Pass Kit的编程过程,MyPass实例设计原型草图。MyPass启动的时候,首页是表视图画面,它查询本地设备上的Passbook中特定一些Pass,然后然后显示的表视图画面中。用户点击“+”按钮,如果登机牌Pass存在则替换,否则添加登机牌Pass到Passbook,登机牌Pass是从iosbook3.com服务器请求下载的。如果在表视图画面点击其中的单元格,则画面跳转到Pass的详细画面,在详细画面中可以点击导航栏右上角的“Remove”按钮把当前Pass从Passbook中删除。

1、创建App ID

任何一个iOS应用都需要创建App ID的,在Description项目中输入“Pass Kit Dev”,Bundle Seed ID (App ID Prefix)项目中选择“Use Team ID”。 Bundle Identifier (App ID Suffix)项目中输入“com.51work6.MyPass”。

创建成功获得App ID页面,在App ID列表中会发现我们刚刚创建的Pass Kit Dev

2、配置Pass可用

默认情况下创建的应用是不可以访问Passbook的,我们需要点击Configure超链接进入应用配置页面,勾选“Enable for Passes”开启Pass可用。

配置完成点击右下角的“Done”按钮,保存配置并回到App ID的列表页面,这时候再回来看一下我们刚刚配置的应用,它的Pass状态变为了绿色可用状态了。

3、创建配置概要文件

为了能够编写在设备上应用,我们还需要创建配置概要文件。创建成功之后下载配置概要文件到本地。

4、创建Pass类型ID

创建Pass类型ID也是重要的一个环节,我们需要设置的Pass类型ID是“pass.com.51work6.boarding-pass”。

5、配置Xcode工程代码签名

前面的工作完成之后,我们需要创建和配置Xcode工程,创建工程名“MyPass”应用,然后进行配置Xcode工程代码签名。这个签名需要使用第3个步骤创建配置概要文件。

选择TAGETS→MyPass→Code Signing Identity,在后面选择Pass Kit Dev Profile。

设置完成之后可以开始编码工作了。

6、配置Xcode工程配置授权信息

配置授权信息与iCloud应用类似,选择TAGETS→MyPass→Summary→Entitlements,我们可以在这里配置授权信息。

授权信息项目说明如下:

Entitlements :勾选Use Entitlements File,指定一个授权文件,这个文件没有会在你的工程目录中自己创建,它记录下面的授权详细配置信息的;

Pass:是选择Pass类型标识,先选择Use selected pass type identifier,然后勾选pass.com.51work6.boarding-pass;

到此为止,编程的前期准备过程就完成了,下面我们介绍实例的编写过程。

访问Passbook

对于Pass的操作是通过PKPassLibrary类完成的,PKPassLibrary类不是单例设计的,获得实例对象时候使用下面代码:

PKPassLibrary* passLib = [[PKPassLibrary alloc] init];

在PKPassLibrary类中与访问Passbook相关的方法有:

passes 获得Passbook中全部授权文件指定的Pass,我们在授权文件中指定的Pass类型ID是pass.com.51work6.boarding-pass,因此该方法取得的是Pass类型ID为pass.com.51work6.boarding-pass的所有Pass。

passWithPassTypeIdentifier:serialNumber: 通过指定的Pass类型ID和序列号获得Pass对象。

下面我们看看相关的程序代码,

ViewController.h

#import <UIKit/UIKit.h>  

#import ”ASIHTTPRequest.h”  

#import ”PassKit/PassKit.h”  

#import ”DetailViewController.h”  

#define SerialNumber @”gT6zrHkaW”  

@interface ViewController :  

UITableViewController <PKAddPassesViewControllerDelegate>  

@property (strong, nonatomic) NSArray* passes;  

- (IBAction)add:(id)sender;  

@end 

ViewController.m

- (void)viewDidLoad  

{  

[super viewDidLoad];  

//判断Passbook是否可用  

if (![PKPassLibrary isPassLibraryAvailable])  

{  

NSLog(@”Passbook不可用。”);  

} else {  

[[NSNotificationCenter defaultCenter] addObserver:self  

selector:@selector(handleLibraryChange:)  

name:PKPassLibraryDidChangeNotification object:nil];  

}  

}  

-(void)viewWillAppear:(BOOL)animated  

{  

[super viewWillAppear:YES];  

//刷新画面  

[self handleLibraryChange:nil];  

}  



#pragma mark - 处理Passbook变化通知  

-(void)handleLibraryChange:(NSNotification*) not ④  

{  

PKPassLibrary* passLib = [[PKPassLibrary alloc] init];  

//排序  

NSSortDescriptor *byName = [NSSortDescriptor  

sortDescriptorWithKey:@"localizedName" ascending:YES];  

_passes = [[passLib passes] sortedArrayUsingDescriptors:@[byName]];  

[self.tableView reloadData];  

}  

- (void)didReceiveMemoryWarning  

{  

[super didReceiveMemoryWarning];  

[[NSNotificationCenter defaultCenter] removeAllObjects];  

}  

发布Pass

Pass签名和压缩成功之后,如何把pkpass文件发布给用户使用呢?对于提供给普通用户pkpass文件,我们有3种发布方式:Email发布、Web网站发布和应用程序内发布。

Email发布

这种发布方式是pkpass文件作为Email附件发送给用户,用户最好在他的iPhone或iPod touch设备上打开邮箱读取Email。Email附件中的Pass,附件中的图标是在Pass中的logo.png文件。

当点击这个附件“Store Card”后页面会跳转,点击导航栏右边的“Add”按钮,会将这个Pass添加到Passbook中。

如果用户没有在它的iPhone或iPod touch中接收Email,可以在Mac OS X 10.8.2以上系统中,使用邮件应用程序接收这个邮件。

点击邮件中的“查看凭证…”按钮,会弹出添加Pass的对话框。

如果这个Pass没有添加到Passbook,右下角的按钮为“添加到Passbook”,如果已经添加到Passbook则这个按钮是“完成”或“更新”。

Passbook就到这里了。

下期见~

 类似资料: