通帳に追加できるパスをその場で作成するPassSlotを使用しています。メールに添付できるようにデバイスにダウンロードしようとしています。これが私がこれまでに持っているものです:
[PassSlot passFromTemplateWithName:@"LoveCouponCards" withValues:values pass:^(PSPass *pass) {
[PassSlot downloadPass:pass pass:^(PSPass *pass) {
PKPass *pkpass = [pass performSelector:@selector(pass)];
NSLog(@"Pass: %@", pkpass);
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
NSArray *toRecipients = [NSArray arrayWithObject:@"friend@example.com"];
[picker setToRecipients:toRecipients];
[picker addAttachmentData:pkpass mimeType:@"application/vnd.apple.pkpass" fileName:@"HI"];
// Fill out the email body text
NSString *emailBody = \\
[picker setMessageBody:emailBody isHTML:NO];
[self presentViewController:picker animated:YES completion:nil];
}];
}];
問題は、電子メールのaddAttachment部分で、NSDataが基本的にPKPassに関連付けることができないというエラーをスローすることです。パスをNSDataに変換して、添付できるようにするにはどうすればよいですか?
アップデート:
やってみた
NSURL *url = pkpass.passURL;
NSData *so = [NSData dataWithContentsOfURL:url];
次に、addAttachmentとして「so」を入力しますが、電子メールには何も添付されませんでした。