Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 使用共享扩展名iOS从Wallet打开.pkpass文件_Swift_Xcode_Ios13_Ios8 Share Extension - Fatal编程技术网

Swift 使用共享扩展名iOS从Wallet打开.pkpass文件

Swift 使用共享扩展名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

我正在尝试使用共享扩展名从wallet打开.pkPass文件,但无法打开。基本上是返回数据,我想要URL。但是,如果我尝试在pkaddPasseViewController中打开.pkpassfile数据,则它不会打开,它会表示尝试在其视图不在窗口层次结构中的位置上显示

ShareViewController

 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在运行,有什么解决方法吗?没有,我还没有得到解决方案