5

嗨,首先我必须承认我真的不明白整个 Passbook 主题是如何运作的。所以这是我的情况:我有一个创建 .pkpass 文件的后端系统存储它们并创建一个 URL。当我在浏览器中打开此 URL 时,它会直接开始下载 pass 文件。如何使用我的 ios 应用程序接收或打开此文件?

提前致谢。

4

3 回答 3

3

您可以使用网络服务来获取传递数据。Web 服务可以以 base64(NSString) 格式发送您的通行证数据,然后您对其进行解码以获取 NSData。

使用数据来启动PKPass对象。

PKPass *pass = [[PKPass alloc] initWithData:passData error:&err];

获得 PKPass 后,您可以使用PKAddPassesViewController它在应用程序中显示它。你可以在这里找到详细的解释。

注意:您可以直接从 URL using 下载 Pass 数据,NSUrlConnection并使用下载的数据进行创建PKPass

于 2013-05-29T15:16:10.263 回答
1

另一种方式..更简单,也可以在移动网络应用程序中使用。编写一个简单的 Web 服务来返回此通行证下载 URL,然后在您的应用程序(Web 或本机 ios)中解析 json/xml(取决于响应类型),然后在 safari 中调用 URL。

从原生应用调用 [[UIApplication sharedApplication] openURL:passdownloadURL];

我在我的项目中使用过它,效果很棒!!

于 2013-06-14T10:06:21.337 回答
0

如果您在网站上托管指向 PKPass 项的链接,您可以通过查看 HTTPURLResponse 上的 mimeType 属性来检查页面内容是否真的是 PKPass 项,该属性应为“application/vnd.apple.pkpass”。确认后,使用 URLRequest 下载 .pkpass 数据并将数据传递给 PKPass 初始化程序,如下所示:

var error:NSError?
let passBookData = PKPass( data: data, error: &error )

if error != nil
{
    print( "Error opening pkpass file" )
    return
}
let pkPassVC = PKAddPassesViewController( pass: passBookData )
currentVC.present( pkPassVC, animated: true, completion: completion )
于 2017-07-06T20:04:39.090 回答