#import <PassKit/PassKit.h>
// convert base64 string to pkpass data
NSData *passData = [[NSData alloc] initWithBase64EncodedString:strEncodeData options:0];
NSLog(passData);
// init a pass object with the data
PKPass *pass = [[PKPass alloc] initWithData:passData];
NSLog(pass);
//init a pass library
PKPassLibrary *passLib = [[PKPassLibrary alloc] init];
//check if pass library contains this pass already
if([passLib containsPass:pass]) {
//pass already exists in library, show an error message
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Pass Exists" message:@"The pass you are trying to add to Passbook is already present." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
} else {
//present view controller to add the pass to the library
PKAddPassesViewController *vc = [[PKAddPassesViewController alloc] initWithPass:pass];
[vc setDelegate:(id)self];
[self presentViewController:vc animated:YES completion:nil];
}
Я пытаюсь сохранить сберкнижку в кошельке ios. Мне нужно использовать данные base64 вместо uri из-за проблем с безопасностью. Поток, который я предположил для этого, подобен ниже
- получить строку base64 с сервера.
- преобразовать base64 в данные pkpass с помощью «initWithBase64EncodedString»
- сохранить pkpass в кошелек с помощью «PKAddPassesViewController»
С приведенным выше кодом прогресс останавливается на втором шаге с нулевой ошибкой, даже декодированная строка base64 верна. Поэтому я не могу быть уверен, что код после 2-го шага будет работать без ошибок.
заранее спасибо за ответ.