Ce que je veuxiOS Partager Extension: accéder à l'URL de la page lors du partage via le menu contextuel dans Safari
Je suis en train de réaliser le flux d'utilisateur suivant:
- utilisateur navigue sur une page Web iOS Safari.
- L'utilisateur sélectionne du contenu (texte et images) et attend que le menu contextuel apparaisse.
- L'utilisateur sélectionne l'élément "Partager ...".
- L'utilisateur sélectionne l'extension d'application dans le menu de partage qui provient du bas.
- Le contenu sélectionné et l'URL de la page Web sont partagés avec un serveur distant via un appel HTT.
Ce que j'essayé
J'ai fait une extension de l'action via Xcode. Voici la section NSExtension
de mon info.plist
:
<key>NSExtension</key>
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>NSExtensionActivationRule</key>
<dict>
<key>NSExtensionActivationSupportsWebPageWithMaxCount</key>
<integer>1</integer>
<key>NSExtensionActivationSupportsText</key>
<true/>
<key>NSExtensionActivationSupportsWebURLWithMaxCount</key>
<integer>1</integer>
</dict>
<key>NSExtensionJavaScriptPreprocessingFile</key>
<string>test</string>
</dict>
<key>NSExtensionMainStoryboard</key>
<string>MainInterface</string>
<key>NSExtensionPointIdentifier</key>
<string>com.apple.share-services</string>
</dict>
Voici le fichier test.js
:
var GetURL = function() {};
GetURL.prototype = {
run: function(arguments) {
arguments.completionFunction({"URL": document.URL});
}
};
var ExtensionPreprocessingJS = new GetURL;
Je m'y attendais le résultat suivant: en viewDidLoad
méthode extensionContext?.inputItems
me fournirait plusieurs éléments d'entrée, par laquelle je serais capable d'obtenir le contenu sélectionné et l'URL Web.
ce qui va mal
Dans viewDidLoad
méthode extensionContext?.inputItems
me fournit un seul élément - la représentation de texte brut du contenu sélectionné (même lorsque je choisi des images et du texte en même temps). Je peux vivre avec du texte brut, mais j'ai besoin de l'URL de la page Web.
Ma question
Comment puis-je accéder à l'URL de la page Web ouverte lors de l'utilisation d'une extension de l'action de partager du contenu sélectionné via le menu contextuel dans iOS Safari?
Cela devrait être la réponse acceptée, cela fonctionne pour moi après l'application de la syntaxe Swfit3: itemProvider.loadItem (forTypeIdentifier: "public.url", options: nil, completionHandler: {(url, error) -> Annulation dans –
@ YunCHEN merci pour le pourboire Réponse mise à jour à swift 3 –
Vous êtes les bienvenus,;) –