无法从服务器下载 PKpass
Unable to download PKpass from server
我一直在尝试通过几个链接从服务器下载 pkpass,但每当我下载它时,它都会显示文件大小“0 kb”,因此我无法将其转换为 pkpass 数据。
动态 pkpass 还有其他方法吗?
或者其他方式下载并加载到钱包?
它这样做是因为 pkpass 包含证书和私人信息,这就是它不下载的原因吗?
我找不到任何方法在使用 swift 4.2 或更高版本的应用程序中集成动态 pkpass。
我一直在使用但 none 有效的链接
-> Downloading PKPass in an iOS custom app from my server
->
-> open .pkpass file from Wallet using share extension iOS
终于找到了从服务器获取 pkpass 的解决方案:
-> 只需从 api 响应中获取 base64 字符串
-> 将该 base64 转换为如下所示的数据
private func convertBase64ToData (base64Str:String) -> Void {
let data = Data(base64Encoded: base64Str, options: .ignoreUnknownCharacters)
openPkPassDataFile(passData: data!)
}
-> 然后像下面这样将数据转换为 PKPass
private func openPkPassDataFile(passData:Data) -> Void{
let pass = try? PKPass(data: passData)
let passLibrary = PKPassLibrary()
if passLibrary.containsPass(pass!) {
print("This pass already added in wallet. Thanks!")
} else {
let pkvc = PKAddPassesViewController(pass: pass!)
pkvc!.delegate = self
self.present(pkvc!, animated: true, completion: {() -> Void in
})
}
}
注意:在您的控制器中添加 import PassKit 和 PKAddPassesViewControllerDelegate。
我一直在尝试通过几个链接从服务器下载 pkpass,但每当我下载它时,它都会显示文件大小“0 kb”,因此我无法将其转换为 pkpass 数据。 动态 pkpass 还有其他方法吗? 或者其他方式下载并加载到钱包?
它这样做是因为 pkpass 包含证书和私人信息,这就是它不下载的原因吗?
我找不到任何方法在使用 swift 4.2 或更高版本的应用程序中集成动态 pkpass。
我一直在使用但 none 有效的链接
-> Downloading PKPass in an iOS custom app from my server
->
-> open .pkpass file from Wallet using share extension iOS
终于找到了从服务器获取 pkpass 的解决方案: -> 只需从 api 响应中获取 base64 字符串 -> 将该 base64 转换为如下所示的数据
private func convertBase64ToData (base64Str:String) -> Void {
let data = Data(base64Encoded: base64Str, options: .ignoreUnknownCharacters)
openPkPassDataFile(passData: data!)
}
-> 然后像下面这样将数据转换为 PKPass
private func openPkPassDataFile(passData:Data) -> Void{
let pass = try? PKPass(data: passData)
let passLibrary = PKPassLibrary()
if passLibrary.containsPass(pass!) {
print("This pass already added in wallet. Thanks!")
} else {
let pkvc = PKAddPassesViewController(pass: pass!)
pkvc!.delegate = self
self.present(pkvc!, animated: true, completion: {() -> Void in
})
}
}
注意:在您的控制器中添加 import PassKit 和 PKAddPassesViewControllerDelegate。