共享大文件时无法打开共享扩展

问题描述

  • 共享大小为 20 mb 的视频文件时,共享扩展程序未打开,并且 更多在斯威夫特。如何修复它,或者如果这不可能,那么如何显示 通知用户您的文件大小超过大小限制

  • iOS Outlook 应用程序在共享大文件时向我们发送消息。我们可以这样做吗?

    func manageImages() { self.view.isUserInteractionEnabled = false dispatchQueue.main.async { CommonFunctions().animate(view: self.view) }

         let content = extensionContext!.inputItems[0] as! NSExtensionItem
         let contentType = kUTTypeData as String//let contentType = kUTTypeImage as String
         let contentTypeDic = kUTTypeDirectory as String
         print("loop to start")
         //let properyList = String(kUTTypePropertyList)
         self.foundwebpage = false
         self.foundDescription = false
         for (index,attachment) in ((content.attachments)?.enumerated())! {
             if attachment.hasItemConformingToTypeIdentifier(contentType) {
                 print("1")
                 if index > 0{
                     RunLoop.current.run(until: Date.init(timeIntervalSinceNow: 2.0))
                 }
                 if attachment.hasItemConformingToTypeIdentifier(kUTTypeWindowsExecutable as String) || attachment.hasItemConformingToTypeIdentifier(kUTTypeExecutable as String) || attachment.hasItemConformingToTypeIdentifier(kUTTypeUnixExecutable as String) {
                     isExecutableFound = true
                     print("2")
                 }
                 if attachment.hasItemConformingToTypeIdentifier(contentTypeDic) {
                     if attachment.hasItemConformingToTypeIdentifier(contentTypeDic) {
                         attachment.loadItem(forTypeIdentifier: contentTypeDic,options: nil,completionHandler: { (item,error) -> Void in
                             let dictionary = item as! NSDictionary
                             OperationQueue.main.addOperation {
                                 let results = dictionary[NSExtensionJavaScriptPreprocessingResultsKey] as! NSDictionary
                                 let urlString = results["currentUrl"] as? String
                                 let url = NSURL(string: urlString!)
                                 print(results)
                                 print(url as Any)
                             }
                         })
                     } else {
                         print("error")
                     }
                     break
                 }
                 if attachment.hasItemConformingToTypeIdentifier("public.url") {
                     if attachment.hasItemConformingToTypeIdentifier("public.url") {
                         attachment.loadItem(forTypeIdentifier: "public.url",options: nil) { [weak self] data,error in
                             print(data as Any)
    
                             var rawImage : UIImage?
                             var rawData : Data?
    
                             if let shareURL = data as? NSURL {
                                 print (shareURL.absoluteString!)
                                 let stringurl :String = (shareURL.absoluteString)!
                                 if stringurl.contains("file:///") {
                                     var url : URL?
                                     var rawImage : UIImage?
                                     var rawData : Data?
                                     url = shareURL as URL
    
                                     // GETTING RAW DATA
                                     print(url as Any)
                                     do {
                                         rawData = try Data(contentsOf: shareURL as URL)
                                         rawImage = UIImage(data: rawData!)
                                         if rawImage != nil {
                                             self?.found = true
                                             rawImage = resizeImage(image: rawImage!,newWidth: CGFloat(100))
                                         }
                                         else {
                                             rawImage = UIImage(named: "Document")!
                                         }
    
                                     }
                                     catch let exp {
                                         CommonFunctions().stopAnimate()
                                         self?.view.isUserInteractionEnabled = true
                                         print("GETTING EXCEPTION \(exp.localizedDescription)")
                                     }
                                     self?.save(url!)
                                     print("7")
                                     self?.docURL.append(url!.absoluteString)
                                     if rawImage == nil {
                                         self?.selectedImages.append(UIImage(named: "Document")!)
                                     }
                                     else {
                                         self?.selectedImages.append(rawImage!)
                                     }
                                     self?.imagesData.append(rawData!)//this.imagesData.append(imgData!)
    
                                     if index == (content.attachments?.count)! - 1 {
                                         dispatchQueue.main.async {
                                             if ((self?.selectedImages.count)!) > 0 {
                                                 print(self?.selectedImages.count as Any)
                                                 print("reload start")
                                                 CommonFunctions().stopAnimate()
                                                 self?.imgCollectionView.reloadData()
    
                                                 if self?.foundwebpage == true && self?.foundDescription != true {
                                                     self?.lblHeader.attributedText = CommonFunctions().getHeader(title: "Import URL(s)",count: String(describing: (self?.selectedImages.count)!))
                                                 }
                                                 else if self?.foundDescription == true && self?.foundwebpage != true {
                                                     self?.lblHeader.attributedText = CommonFunctions().getHeader(title: "Import Description(s)",count: String(describing: (self?.selectedImages.count)!))
                                                 }
                                                 else if self?.foundwebpage == true && self?.foundDescription == true {
                                                     self?.lblHeader.attributedText = CommonFunctions().getHeader(title: "Import URL(s) and Description",count: String(describing: (self?.selectedImages.count)!))
                                                 }
                                                 else if self?.foundDescription == true && self?.foundwebpage != true && self?.found == true{
                                                     self?.lblHeader.attributedText = CommonFunctions().getHeader(title: "Import Description(s) and Document(s)",count: String(describing: (self?.selectedImages.count)!))
                                                 }
                                                 else if self?.foundDescription != true && self?.foundwebpage == true && self?.found == true{
                                                     self?.lblHeader.attributedText = CommonFunctions().getHeader(title: "Import URL(s) and Document(s)",count: String(describing: (self?.selectedImages.count)!))
                                                 }
                                                 else {
                                                     self?.lblHeader.attributedText = CommonFunctions().getHeader(title: "Import Document(s)",count: String(describing: (self?.imagesData.count)!))
                                                 }
                                             }
                                             else {
                                                 CommonFunctions().stopAnimate()
                                                 print("no doc selected")
                                             }
                                             self?.view.isUserInteractionEnabled = true
                                         }
                                     }
    
                                 }
                                 else {
                                     do {
                                         rawData = try Data(contentsOf: shareURL as URL)
                                         rawImage = UIImage(data: rawData!)
                                         if rawData == nil {
                                             rawData = Data()
                                             print("data is nil")
                                         }
                                         else {
    
                                             print("data filled")
                                         }
                                         if rawImage != nil {
                                             rawImage = resizeImage(image: rawImage!,newWidth: CGFloat(100))
                                         }
                                         else {
                                             rawImage = resizeImage(image: UIImage(named: "worldwide48")!,newWidth: CGFloat(100))
                                         }
    
                                     }
                                     catch let exp {
                                         CommonFunctions().stopAnimate()
                                         self?.view.isUserInteractionEnabled = true
                                         print("GETTING EXCEPTION \(exp.localizedDescription)")
                                     }
                                     rawData = Data()
                                     self?.selectedImages.append(UIImage(named: "worldwide48")!)
                                     self?.imagesData.append(rawData!)
                                     self?.docURL.append(shareURL.absoluteString!)
                                     print(self?.docURL as Any)
                                     if index == (content.attachments?.count)! - 1 {
                                         dispatchQueue.main.async {
                                             if ((self?.selectedImages.count)!) > 0 {
                                                 print(self?.selectedImages.count as Any)
                                                 print("reload start")
                                                 CommonFunctions().stopAnimate()
                                                 self?.imgCollectionView.reloadData()
                                                 self?.foundwebpage = true
                                                 if self?.foundwebpage == true && self?.foundDescription == true {
                                                     self?.lblHeader.attributedText = CommonFunctions().getHeader(title: "Import URL(s) and Description",count: String(describing: (self?.selectedImages.count)!))
                                                 }
                                                 else if self?.foundwebpage == true && self?.found == true {
                                                     self?.lblHeader.attributedText = CommonFunctions().getHeader(title: "Import URL(s) and Document(s)",count: String(describing: (self?.selectedImages.count)!))
                                                 }
                                                 else if self?.foundwebpage == true && self?.foundDescription == true && self?.found == true {
                                                     self?.lblHeader.attributedText = CommonFunctions().getHeader(title: "Import URL(s),Description and Document(s)",count: String(describing: (self?.selectedImages.count)!))
                                                 }
                                                 else {
                                                     self?.lblHeader.attributedText = CommonFunctions().getHeader(title: "Import URL(s)",count: String(describing: (self?.selectedImages.count)!))
                                                 }
    
                                             }
                                             else {
                                                 CommonFunctions().stopAnimate()
                                                 print("no doc selected")
                                             }
                                             self?.view.isUserInteractionEnabled = true
                                         }
                                     }
                                     print("end of doc")
                                 }
                             }
                             else {
                                 CommonFunctions().stopAnimate()
                                 self?.fallbackAlert()
                                 return
                             }
    
                         }
                     }
                     break
                 }
                 attachment.loadItem(forTypeIdentifier: contentType,error in
    
                     if error == nil {
                         print("data recieved")
                         var url : URL?
                         var urlString : String?
                         var rawImage : UIImage?
                         var rawData : Data?
                         if let dataurl : URL = data as? URL {
                             url = dataurl
                             // GETTING RAW DATA
                             print(url as Any)
                             do {
                                 rawData = try Data(contentsOf: dataurl)
                                 do {
                                     if #available(iOSApplicationExtension 13.0,*) {
                                         let compressedData = try (rawData! as NSData).compressed(using: .lzfse)
                                         rawData = Data(referencing: compressedData)
                                     } else {
                                         // Fallback on earlier versions
                                     }
                                     // use your compressed data
                                 } catch {
                                     print(error.localizedDescription)
                                 }
                                 rawImage = UIImage(data: rawData!)
                                 if rawImage != nil {
                                     self?.found = true
                                     rawImage = resizeImage(image: rawImage!,newWidth: CGFloat(100))
                                 }
                                 else {
                                     rawImage = resizeImage(image: UIImage(named: "Document")!,newWidth: CGFloat(100))
                                 }
    
                             }
                             catch let exp {
                                 CommonFunctions().stopAnimate()
                                 self?.view.isUserInteractionEnabled = true
                                 print("GETTING EXCEPTION \(exp.localizedDescription)")
                             }
                             self?.save(url!)
                             print("7")
                             self?.docURL.append(url!.absoluteString)
                         }
                         else if let dataurl : String = data as? String {
                             urlString = dataurl
                             // GETTING RAW DATA
                             print(urlString as Any)
                             url = URL(string: urlString!)
                             if url != nil {
                                 self?.foundwebpage = true
                                 self?.docURL.append(url!.absoluteString)
                                 do {
                                     rawData = try Data(contentsOf: url! as URL)
    
                                     if rawData == nil {
                                         print("data is nil")
                                     }
                                     else {
                                         print("data filled")
                                     }
    
                                     rawImage = UIImage(named: "worldwide48")!
    
                                 }
                                 catch let exp {
                                     CommonFunctions().stopAnimate()
                                     self?.view.isUserInteractionEnabled = true
                                     print("GETTING EXCEPTION \(exp.localizedDescription)")
                                 }
                             }
                             else {
                                 self?.foundDescription = true
                                 rawData = Data()
                                 rawImage = UIImage(named: "note_icon")!
                                 //url = URL(string: "http://www.google.com")
                                 self?.selectedDescription = urlString!
                             }
                             print(url as Any)
                             print(self?.docURL as Any)
                             print("url from  string")
                         }
                         else if let img : UIImage = data as? UIImage {
                             rawImage = img
                             rawData = rawImage?.jpegData(compressionQuality: 0)
                             let filename = "IMG_" + String(describing: index + 1) + "_" + CommonFunctions().getCurrentDate() + ".jpg"
                             url = self?.saveImage(rawImage!,name: filename)
                             self?.save(url!)
                             if url == nil {
                                 print("6")
                                 CommonFunctions().stopAnimate()
                                 return
                             }
                             else {
                                 print("5")
                                 self?.found = true
                                 self?.docURL.append(url!.absoluteString)
                             }
                         }
                         else {
                             CommonFunctions().stopAnimate()
                             self?.fallbackAlert()
                             return
                         }
    
                         let this = self
    
                         if rawImage == nil {
                             this?.selectedImages.append(UIImage(named: "Document")!)
                         }
                         else {
                             this?.selectedImages.append(rawImage!)
                         }
    
                         this?.imagesData.append(rawData!)//this.imagesData.append(imgData!)
    
                         if index == (content.attachments?.count)! - 1 {
                             dispatchQueue.main.async {
                                 if ((self?.selectedImages.count)!) > 0 {
                                     print(self?.selectedImages.count as Any)
                                     print("reload start")
                                     CommonFunctions().stopAnimate()
                                     self?.imgCollectionView.reloadData()
    
                                     if self?.foundwebpage == true && self?.foundDescription != true {
                                         self?.lblHeader.attributedText = CommonFunctions().getHeader(title: "Import URL(s)",count: String(describing: (self?.selectedImages.count)!))
                                     }
                                     else if self?.foundDescription == true && self?.foundwebpage != true {
                                         self?.lblHeader.attributedText = CommonFunctions().getHeader(title: "Import Description(s)",count: String(describing: (self?.selectedImages.count)!))
                                     }
                                     else if self?.foundwebpage == true && self?.foundDescription == true {
                                         self?.lblHeader.attributedText = CommonFunctions().getHeader(title: "Import URL(s) and Description",count: String(describing: (self?.selectedImages.count)!))
                                     }
                                     else if self?.foundDescription == true && self?.foundwebpage != true && self?.found == true{
                                         self?.lblHeader.attributedText = CommonFunctions().getHeader(title: "Import Description(s) and Document(s)",count: String(describing: (self?.selectedImages.count)!))
                                     }
                                     else if self?.foundDescription != true && self?.foundwebpage == true && self?.found == true{
                                         self?.lblHeader.attributedText = CommonFunctions().getHeader(title: "Import URL(s) and Document(s)",count: String(describing: (self?.selectedImages.count)!))
                                     }
                                     else {
                                         self?.lblHeader.attributedText = CommonFunctions().getHeader(title: "Import Document(s)",count: String(describing: (self?.imagesData.count)!))
                                     }
                                 }
                                 else {
                                     CommonFunctions().stopAnimate()
                                     print("no doc selected")
                                 }
                                 self?.view.isUserInteractionEnabled = true
                             }
                         }
                         print("end of doc")
                     } else {
                         print("GETTING ERROR")
                         CommonFunctions().stopAnimate()
                         self?.view.isUserInteractionEnabled = true
                         self?.fallbackAlert()
                     }
                 }
             }
             else {
    
                 print("data not supported")
                 CommonFunctions().stopAnimate()
                 self.view.isUserInteractionEnabled = true
                 self.fallbackAlert()
             }
         }
     }
    

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)