我的应用程序处理下载优惠券&保存到Passbook。但每次下载不同的优惠券时,文件都会被Passbook取代。
以下是我将优惠券添加到Passbook的代码:
第1步:在项目中增加了“PassKit”框架&进口相同。
第2步:在我的h文件中添加了'PKAddPassesViewControllerDelegate'。
第3步:
- (void) generatePass {
if (![PKPassLibrary isPassLibraryAvailable]) {
[[[UIAlertView alloc] initWithTitle:@"Error"
message:@"PassKit not available"
delegate:nil
cancelButtonTitle:@"Pitty"
otherButtonTitles: nil] show];
return;
}
else {
NSData *passData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://(url).pkpass"]];
NSError* error = nil;
PKPass *newPass = [[PKPass alloc] initWithData:passData
error:&error];
if (error!=nil) {
[[[UIAlertView alloc] initWithTitle:@"Passes error"
message:[error
localizedDescription]
delegate:nil
cancelButtonTitle:@"Ooops"
otherButtonTitles: nil] show];
return;
}
PKAddPassesViewController *addController =
[[PKAddPassesViewController alloc] initWithPass:newPass];
addController.delegate = self;
[self presentViewController:addController
animated:YES
completion:nil];
}
}
答案 0 :(得分:1)
Passbook索引经过serialNumber
和passTypeIdentifier
。添加传递时,如果用户的传递库中已存在匹配serialNumber
和passTypeIdentifier
的传递,则该传递将被添加的传递覆盖。
要为同一passTypeIdentifer
添加多个通行证,您必须为每个新通行证生成唯一的serialNumber
。