【问题标题】:Passbook , showing an .pass in an appPassbook ,在应用程序中显示 .pass
【发布时间】:2015-02-26 14:27:39
【问题描述】:

所有, 我一直在阅读 Apple 文档,并且发现了一些信息来显示通行证和更改应用程序中的通行证。但是有没有办法可以将 .pass zip 存储在 XCODE 中并显示在弹出视图控制器中?

我已经想通了,但我不工作。

有什么建议吗??

var pkfile : NSData = NSData(contentsOfFile: "Event.pkpass")!
        var pass : PKPass = PKPass(data: pkfile, error: nil)
        let vc = PKAddPassesViewController(pass: pass)
        self.presentViewController(vc, animated: true, completion: nil)

【问题讨论】:

    标签: swift passkit


    【解决方案1】:

    我是这样做的:

     var filePath = NSBundle.mainBundle().pathForResource("Event", ofType:"pkpass")
            var pkfile : NSData = NSData(contentsOfFile: filePath!)!
            var pass : PKPass = PKPass(data: pkfile, error: nil)
            let vc = PKAddPassesViewController(pass: pass) as PKAddPassesViewController
            self.presentViewController(vc, animated: true, completion: nil)
    

    并确保在构建设置/复制捆绑资源中设置了 pkpass 文件。

    希望这对某人有所帮助。

    【讨论】:

    • 请注意:要使其正常工作,似乎数据参数需要是 NSData 使用较新的 Data 类返回无法打开 .pkpass 文件的错误。
    【解决方案2】:

    对于 Swift 4

    if let filepath = Bundle.main.path(forResource: "BoardingPass", ofType: "pkpass") {
        let pkfile : NSData = NSData(contentsOfFile: filepath)!
        let pass : PKPass = PKPass(data: pkfile as Data, error: nil)
        let vc = PKAddPassesViewController(pass: pass) as PKAddPassesViewController
        self.present(vc, animated: true, completion: nil)
    } else {
        print("Boarding pass not found.")
    }
    

    【讨论】:

    • Xcode 现在抱怨 PKPass = PKPass(data: pkfile as Data, error: nil) 不接受第二个参数。 @faran-rasheed 下面的帖子完成了这项工作
    【解决方案3】:
        let filePath = Bundle.main.path(forResource: "BoardingPass", ofType: "pkpass")
        let pkfile : NSData = NSData(contentsOfFile: filePath!)!
    
        do {
            let pass = try PKPass(data: pkfile as Data)
            let vc = PKAddPassesViewController(pass: pass)
            self.present(vc!, animated: true)
        }
        catch {
            print("something went wrong!")
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多