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

passbook开发实践分享1-pkpass创建

冯德宇
2023-12-01

passbook是苹果在ios6后主推的应用。我们的也有幸在appstore的passbook应用推荐长期居于首位。
passbook的开发包括客户端和服务器的两部分开发工作。
对于客户端,相对来说比较简单,引入passkit.framework,利用其中的controller很方便的实现.pkpass(passbook的常用文件命名)文件的展示、添加和更新。
仅仅需要如下几行代码:
  PKPass* pass = [[PKPass alloc] initWithData:pkpassData error:&error];
        if(!pass) return;
        
        PKAddPassesViewController *addPassViewController = [[PKAddPassesViewController alloc] initWithPass:pass];
        addPassViewController.delegate = self;
        [self.navigationController presentModalViewController:addPassViewController animated:YES];
        [addPassViewController release];

更复杂的在于服务器端pkpass文件的生成,注册以及推送。
pkpass文件有多种格式,包括票据,登机牌等,具体参照苹果官方网站的Pass Design and Creation一文( http://https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/PassKit_PG/Chapters/Creating.html#//apple_ref/doc/uid/TP40012195-CH4-SW1)。
1)生成针对要支持passbook的应用生成passbook证书(包括develop和distribution证书)。
2)下载证书并导出.p12文件供程序中对文件签名使用。
准备pkpass中需要的logo,icon等用于打包至文件中。
3)编写代码,按照pkpass规范设置显示的数据,签名,打包。我们的服务器采用java,推荐使用jpasskit(开源地址)。
jpasskit已经将pkpass的结构对象化,并实现了签名打包,生成已经很简单。
需要注意:
首先在生成的时候PKPASS文件是通过Pass Type Identifier 和 Serial Number来唯一标识的,所以一定要保证唯一性。
其次为了保证后续可以注册更新,pkpass需要填充authenticationToken和webServiceUrl。后面会详细介绍在添加pkpass后如何完成更新。

 类似资料: