Recherche…


Remarques

Documentation Apple utile avec des exemples et des éclaircissements.

Ouvrir une application basée sur son schéma d'URL

Pour ouvrir une application avec un schéma d'URL défini pour la todolist:// :

Objectif c

NSURL *myURL = [NSURL URLWithString:@"todolist://there/is/something/to/do"];
[[UIApplication sharedApplication] openURL:myURL];

Rapide

let stringURL = "todolist://there/is/something/to/do"
if let url = NSURL(string: stringURL) {
    UIApplication.shared().openURL(url)
}

HTML

<a href="todolist://there/is/something/to/do">New SMS Message</a>

Remarque: Il est utile de vérifier si le lien peut être ouvert pour afficher un message approprié à l'utilisateur. Cela peut être fait en utilisant la méthode canOpenURL:

Ajout d'un schéma d'URL à votre propre application

Disons que vous travaillez sur une application appelée MyTasks et que vous souhaitez autoriser les URL entrantes à créer une nouvelle tâche avec un titre et un corps. L'URL que vous concevez pourrait ressembler à ceci:

mytasks://create?title=hello&body=world

(Bien sûr, les paramètres de text et de body sont utilisés pour remplir notre tâche que nous créons!)

Voici les grandes étapes pour ajouter ce schéma d'URL à votre projet:

  1. Enregistrez un schéma d'URL dans le fichier Info.plist votre application afin que le système sache quand acheminer une URL vers votre application.
  2. Ajoutez une fonction à votre UIApplicationDelegate qui accepte et gère les URL entrantes.
  3. Effectuez n'importe quelle tâche qui doit se produire lorsque cette URL est ouverte.

Première étape: Enregistrez un schéma d'URL dans Info.plist:

Tout d'abord, nous devons ajouter une entrée "Types d'URL" à notre fichier Info.plist. Cliquez sur le bouton (+) ici: ajouter une nouvelle ligne à Info.plist

... puis entrez un identifiant unique pour votre application, ainsi que le schéma d'URL que vous souhaitez utiliser. Être spécifique! Vous ne voulez pas que le schéma d'URL entre en conflit avec l'implémentation d'une autre application. Mieux vaut être trop long ici que trop court! remplir l'entrée des types d'URL dans Info.plist

Deuxième étape: gérer l'URL dans UIApplicationDelegate

Nous devons implémenter application:openURL:options: sur notre UIApplicationDelegate . Nous allons inspecter l' URL entrante et voir si une action est possible!

Une mise en œuvre serait la suivante:

func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
    if url.scheme == "mytasks" && url.host == "create" {
        let title = // get the title out of the URL's query using a method of your choice
        let body = // get the title out of the URL's query using a method of your choice
        self.rootViewController.createTaskWithTitle(title, body: body)
        return true
    }

    return false
}

Troisième étape: Effectuez une tâche en fonction de l'URL.

Lorsqu'un utilisateur ouvre votre application via une URL, il s'attend probablement à ce que quelque chose se produise. Peut-être que la navigation vers un élément de contenu, peut-être la création d'un nouvel élément - dans cet exemple, nous allons créer une nouvelle tâche dans l'application!

Dans le code ci-dessus, nous pouvons voir un appel à self.rootViewController.createTaskWithTitle(:body:) - en supposant que votre AppDelegate ait un pointeur sur son contrôleur de vue racine qui implémente correctement la fonction, vous êtes prêt!

Configurer les liens profonds pour votre application est facile. Vous avez juste besoin d'une petite URL à l'aide de laquelle vous souhaitez ouvrir votre application.

Suivez les étapes pour configurer la liaison profonde pour votre application.

  1. Permet de créer un projet et nommez-le DeepLinkPOC.

  2. Maintenant, sélectionnez votre cible de projet.

  3. Après avoir sélectionné la cible, sélectionnez l'onglet "info".

  4. Faites défiler vers le bas jusqu'à ce que vous voyiez une option de types d'URL

  5. Cliquez sur l'option '+'.

  6. Vous verrez des schémas d'URL ajouter une chaîne à l'aide de laquelle vous voulez ouvrir votre application. Permet d'ajouter " DeepLinking " dans les schémas d'URL.

Donc, pour ouvrir votre application, vous pouvez la lancer en tapant "DeepLinking: //" dans votre safari. Votre chaîne de liens profonds a le format suivant.

[scheme]://[host]/[path]  --> DeepLinking://path/Page1

où, Schéma: "DeepLinking" Host: "path" path: "Page1"

Note : Même si vous n’ajoutez pas d’hôte ni de chemin, il lancera l’application, donc pas de soucis.

  1. Maintenant, ajoutez la méthode suivante à votre applicationdelegate.

Rapide:

 func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool 

Objectif c:

-(BOOL)application:(UIApplication *)application
          openURL:(NSURL *)url
          sourceApplication:(NSString *)sourceApplication
          annotation:(id)annotation

La méthode ci-dessus est appelée chaque fois que votre application est lancée en utilisant une chaîne de liens profonds que vous avez définie pour votre application.

  1. Il est maintenant temps d'installer votre application, mais attendez avant de sauter directement pour exécuter le bouton. Faites un petit changement dans la méthode de lancement de l'application du schéma.
  • Sélectionnez et modifiez votre schéma comme

entrer la description de l'image ici

  • changer son type de lancement et fermer entrer la description de l'image ici
  1. Maintenant, cliquez sur le bouton Exécuter (si vous le souhaitez, vous pouvez ajouter un point d'arrêt à vos méthodes didFinishLaunchingWithOptions et openURL pour observer les valeurs)

  2. Vous verrez un message "En attente de DeepLinkPOC (ou du nom de votre application) pour lancer".

  3. Ouvrez safari et tapez " DeepLinking: // " dans la barre de recherche. Cela affichera une invite "ouvrez cette page dans DeepLinkPOC". Cliquez sur Ouvrir pour lancer votre application.

J'espère que vous saurez comment configurer les liens profonds pour votre application :)



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow