Swift 使用共享扩展名iOS从Wallet打开.pkpass文件
我正在尝试使用共享扩展名从wallet打开.pkPass文件,但无法打开。基本上是返回数据,我想要URL。但是,如果我尝试在pkaddPasseViewController中打开.pkpassfile数据,则它不会打开,它会表示尝试在其视图不在窗口层次结构中的位置上显示 ShareViewControllerSwift 使用共享扩展名iOS从Wallet打开.pkpass文件,swift,xcode,ios13,ios8-share-extension,Swift,Xcode,Ios13,Ios8 Share Extension,我正在尝试使用共享扩展名从wallet打开.pkPass文件,但无法打开。基本上是返回数据,我想要URL。但是,如果我尝试在pkaddPasseViewController中打开.pkpassfile数据,则它不会打开,它会表示尝试在其视图不在窗口层次结构中的位置上显示 ShareViewController override func didSelectPost() { if let item = self.extensionContext?.inputItems[0] as? N
override func didSelectPost() { if let item = self.extensionContext?.inputItems[0] as? NSExtensionItem{
print("Item \(item)")
for ele in item.attachments!{
print("item.attachments!======>>> \(ele as! NSItemProvider)")
let itemProvider = ele as! NSItemProvider
print(itemProvider)
if itemProvider.hasItemConformingToTypeIdentifier("com.apple.pkpass"){
imageType = "com.apple.pkpass"
}
if itemProvider.hasItemConformingToTypeIdentifier("com.apple.pkpass"){
imageType = "com.apple.pkpass"
}
print("imageType : \(imageType)")
if itemProvider.hasItemConformingToTypeIdentifier(imageType){
print("True")
itemProvider.loadItem(forTypeIdentifier: imageType, options: nil, completionHandler: { (item, error) in
print(item)
var imgData: Data!
if let url = item as? Data{
imgData = url
//try! Data(contentsOf: url)
self.openPass(withName: url)
}else {
print("sorry it does not work on others")
}
})
}
}
}self.extensionContext!.completeRequest(returningItems: [], completionHandler: nil)
}
打开PkPass文件函数
func openPass(withName passData: Data?) {
var error: Error? = nil
var newPass: PKPass? = nil
do {
newPass = try PKPass(data: passData as! Data)
} catch {
}
if error != nil {
UIAlertView(title: "Passes error", message: error!.localizedDescription, delegate: nil, cancelButtonTitle: "Ooops", otherButtonTitles: "").show()
return
}
let addController = PKAddPassesViewController(pass: newPass!)
addController!.delegate = self
present(addController!, animated: true)
}
它没有打开,它表示尝试在其视图不在窗口层次结构中的情况下显示
基本上,我想在我的应用程序中使用共享扩展名从钱包应用程序打开.pkpass文件,然后用户可以使用我的应用程序打印或共享通行证。我想获取.pkpass文件的url,然后将其保存到userdefults,现在的问题是.pkpass文件返回的是数据而不是url
那么,是否有人可以帮助解决此问题,或者就使用共享扩展名thankx打开钱包应用程序中的.pkpass文件提出建议?您有什么解决方案吗?可能是旧的ios在运行,有什么解决方法吗?没有,我还没有得到解决方案