0

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

  • 在我的应用程序中,如果我将 .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"];
    

我想到的另一种方式是通过蓝牙共享。但是,如果我没有准确的通行证数据,那就没有意义了。从上述所有指定的方法中,第三种方法是有意义的(编码质量方面),但数据不是所需的。

也请向我建议使共享成为可能的其他方法。

4

1 回答 1

0

如果您和您的好友使用同一个应用程序,您可以在服务器上保留通行证列表,将其标记为可共享,显示可共享通行证列表并允许他们直接从服务器获取通行证;一种标准的服务器<->应用程序类型的功能。

如果您想使用蓝牙,那么您有点超出我的舒适区,但是由于 .pkpass 文件只是一个字符块,您可以通过以太网传输文件/块并根据文档使用 PassKit API 实例化它.

于 2012-10-05T20:43:04.917 回答