2016-02-18 1 views
6

Je construis une extension iOS Share. J'ai besoin de récupérer des données à partir de pages web, donc j'utilise un fichier JavaScript pour récupérer ces données et les renvoyer à l'application pour qu'elles soient utilisées dans l'extension.Extension de partage avec NSExtensionJavaScriptPreprocessingFile pas d'image

J'ai remarqué ce qui suit. Quand je mets la clé NSExtensionJavaScriptPreprocessingFile avec mon fichier JavaScript, le SLComposeServiceViewController apparaît parfait mais sans image!

Comme ceci:

enter image description here

Si je retire le NSExtensionJavaScriptPreprocessingFile mon SLComposeServiceViewController apparaît comme ceci:

enter image description here

Mais je dois accéder à certaines données de la page Web (la celui que je prends avec JS) mais j'ai aussi besoin de cette image! Je suis complètement perdu comment obtenir les deux ou je ne sais même pas si c'est possible parce que les docs d'Apple sont confus.

Merci!

+0

Même combat ici. Qu'avez-vous fini par découvrir? – SAHM

+0

Après de nombreuses heures de tests, je crois que vous devez choisir l'un ou l'autre. Vous ne pouvez pas avoir à la fois l'image previewImage de la page Web et utiliser NSExtensionJavaScriptPreprocessingFile. Pas la réponse que j'avais espéré trouver. – SAHM

Répondre

1

Je ne connais pas la réponse à cette question, mais j'ai regardé des questions sur l'extension de partage moi-même et je suis tombé sur un couple qui pourrait vous être utile. L'idée générale est de continuer à utiliser votre préprocesseur JavaScript et de définir manuellement l'image d'aperçu.

Récupérer l'image avec quelque chose comme:

[itemProvider loadPreviewImageWithOptions:nil completionHandler:^(UIImage *image, NSError *error){ 

    if(image){ 
     //do anything here with the image 
    } 

} 

comme décrit ici: iOS 8 Share Extension Safari Image

Et définir l'image d'aperçu de SLComposeServiceViewController en remplaçant loadPreviewView:

override func loadPreviewView() -> UIView! {   
    imagePreviewView = UIImageView(image: UIImage(named: "imageName")) 
    return imagePreviewView 
} 

comme décrit ici: Change the preview image in an SLComposeServiceViewController

Encore une fois, je ne sais pas si cela va fonctionner. Juste semble que cela devrait partir de ce que j'ai lu.

+0

Non, je ne pense pas que cela fonctionne. Le même problème énoncé par le PO est toujours présent. – SAHM