2012-10-03 103 views
0

假设我的存折应用程序中有通行证。并想与我的一位朋友分享通行证。如何在iPhone中通过应用程序共享通行证?

  • 在我的应用程序,如果我邮寄.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

[pass passURL]不是一个http请求,并且不返回任何数据。我相信该协议类似于“shoebox://”,并启动Passbook来显示通行证。 – ohmi

+0

我同意。这就说得通了。但是你认为,有没有办法分享通行证? – harshitgupta

回答

0

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

如果你想使用蓝牙,那么你有点偏离我的舒适区域,但由于.pkpass文件只是一个字符的blob,你可以通过ether传输文件/ blob并使用PassKit API实例化它根据文档。

+0

根据我的经验,它只是一个NSData对象,我们需要从一个设备转移到另一个设备。 – harshitgupta

相关问题