如何通过iPhone中的应用程序分享通行证?

时间:2012-10-03 07:09:49

标签: iphone ios6 sharing passbook

假设我的存折应用程序中有通行证。并希望与我的一个朋友分享通行证。

  • 在我的应用中,如果我将.pkpass数据(从服务器收到)发送给我的朋友,那么它会被设备识别为通行证。

    [controller addAttachmentData:data mimeType:@"application/vnd.apple.pkpass" fileName:@"Pass.pkpass"];
    
  • 假设我的文档目录或应用程序包中有.pkpass文件,然后通过将该文件更改为数据然后邮寄它,也可以正常工作。

     NSString *filePath = [[NSBundle mainBundle] pathForResource:@"walmart" ofType:@"pkpass"];
     NSData *data = [[NSData alloc] initWithContentsOfFile:filePath];
    [controller addAttachmentData:data mimeType:@"application/vnd.apple.pkpass" fileName:@"Pass.pkpass"]
    
  • 但是,当我使用以下代码时,它不起作用。

    _passLibrary = [[PKPassLibrary alloc] init];
    _passArray = [_passLibrary passes];
    PKPass *pass = _passArray[0];
    NSData *data = [[NSData alloc] initWithContentsOfURL:[pass passURL]];
    [controller addAttachmentData:data2 mimeType:@"application/vnd.apple.pkpass" fileName:@"Pass.pkpass"];
    

我想到的另一种方法是通过蓝牙分享。但如果我没有准确的传球数据,那就没有意义了。从上述所有方法中,第三种方法都有意义(编码质量明智),但数据并不是必需的。

另请建议我使用其他方法进行分享。

1 个答案:

答案 0 :(得分:0)

如果您和您的伙伴正在使用相同的应用程序,您可以在服务器上保留一个传递列表,将它们标记为可共享,显示可共享传递列表并允许它们直接从服务器获取传递;标准服务器< - > app类型的功能。

如果你想使用蓝牙,那么你有点在我的舒适区之外,但由于.pkpass文件只是一小块字符,你可以将文件/ blob传输到以太网并使用PassKit API实例化它按照文档。