2017-09-24 3 views
4

J'essaie d'obtenir le imageURL l'extension de partage ios utilise pour la vignette générée dans le action sheet.Récupérer imageURL de l'extension de partage

Je récupère le URL bien, mais n'arrive pas à comprendre comment obtenir le imageURL.

Voici comment je reçois la URL normale,

if let item = extensionContext?.inputItems.first as? NSExtensionItem { 
     if let itemProvider = item.attachments?.first as? NSItemProvider {  
      if itemProvider.hasItemConformingToTypeIdentifier(kUTTypeItem as String) { 
       itemProvider.loadItem(forTypeIdentifier: kUTTypeItem as String, options: nil, completionHandler: { (url, error) -> Void in 
        if let shareURL = url as? NSURL { 

         let components = URLComponents(url:shareURL as URL, resolvingAgainstBaseURL: true) 
         if let host = components?.host { self.shareTitle = host } 
         self.shareURL = shareURL.absoluteString!        
         self.POSTShareData(completion: nil) 
        } 
        self.extensionContext?.completeRequest(returningItems: [], completionHandler:nil) 
       }) 
      } 
     } 
    } 

J'ai essayé de changer le typeIdentifier à kUTTypeImage en vain. J'ai mes info.plist mis à NSExtensionActivationRule à TRUEPREDICATE pour voir ce que je peux récupérer. Je pense peut-être que je dois être plus explicite dans le .plist ??

Je cible iOS 9.3

+0

@salman Ghumsani, pour télécharger l'image que je veux juste l'URL de l'extension de l'action utilise. Dans le lien que vous avez fourni je ne vois pas comment il a récupéré l'url. – Ro4ch

+0

Je ne suis pas sûr que ce soit réalisable. Je pense que 'previewImageHandler' de NSItemProvider peut renvoyer une URL ou un objet de données, et ceux-ci sont utilisés en interne pour présenter une miniature, mais ne font pas techniquement partie de la charge utile partagée et ne seraient donc pas disponibles pour une extension de partage. – Palpatim

+0

Je pense que vous pouvez convertir l'URL en chaîne et ensuite diviser la chaîne à/et vous pouvez ensuite diviser chaque index avec. en utilisant peut-être vous serez en mesure d'obtenir les extensions utilisées dans l'URL. –

Répondre

0

Une solution de contournement est que vous pouvez stocker ce lien URL dans UserDefaults communes

par exemple: - laisser les valeurs par défaut = UserDefaults (suiteName: "group.com.common.Notification")

Je ne veux pas y accéder ensuite en application ou l'extension