Magazine High tech

Tutoriel : Lancer une application en utilisant une “URL Scheme”

Publié le 13 septembre 2011 par Chadiak

Une des meilleurs fonctionnalités de la SDK de l’iPhone est la capacité d’un application à se “lier” elle-même à un ” custom URL schemes” (ou Schéma URL personnalisé) et que ce schéma puisse être utilisé pour lancer cette application à partir d’un navigateur ou d’une autre application iPhone. Créer ce genre de schéma est tellement simple qu’il serait un crime de ne pas l’utiliser dans votre application.

Avant que vous ne soyez prêt à démarrer, vous devez déterminer comment vous voulez que votre application réponde à l’URL. La façon la plus simple d’utiliser les custom schemes est de simplement “réveiller” l’application; mais il est aussi possible de transmettre des information via l’URL (comme indiqué dans l’article précédent), et ainsi, permettre à l’application de faire différentes tâches à son réveil.

Enregistrer un Custom URL Schemes

Indépendamment de ce que vous voulez faire une fois que votre application est démarrée, la première étape est d’enregistrer un schéma d’URL personnalisée avec l’iPhone. Cela se fait via le fichier info.plist situé dans le dossier du projet de votre application.
(NOTE: c’est le même fichier que vous changeriez pour définir une icône personnalisée).

Par défault, quand il est lancé, XCode éditera le fichier dans une UI graphique.
Il est possible de modifier le fichier info.plist directement dans un éditeur de Texte, ce qui peut être plus simple pour certaines personnes.

Étape 1. Clique droit et “Add Row”

screen-capture.png

Étape 2. Sélectionnez “URL types” comme Key

screen-capture-1.png

Étape 3. Développez l’arborescence de “Item 1″ et donnez lui une valeur pour l’URL identifier. Cela peut être n’importe quoi, mais la convention est d’utiliser un “nom de domaine inversé”(ex: “com.myapp”).

screen-capture-2.png

Step 4. Ajoutez une autre “row”, cette fois sur “Item 1″.

screen-capture-3.png

Step 5. Sélectionnez “URL Schemes” comme Key.

screen-capture-4.png

Step 6. Entrez les caractères qui deviendront votre URL scheme (par exemple “myapp://” deviendrait “myapp”). Il est possible d’enregistrer plus d’un scheme en en ajoutant dans cette section même si ce serait étrange de le faire.

screen-capture-6.png

NOTE: Si vous ouvrez le fichier info.plist dans un éditeur de texte vous verrez que ce qui suit a été ajouté au fichier…

CFBundleURLTypes

    CFBundleURLSchemes

      myapp

    CFBundleURLName
    com.yourcompany.myapp

Gérer l’URL

Maintenant que l’URL a été enregistrée, n’importe qui peut ouvrir l’application en utilisant votre URL scheme.

Voici quelques exemples :

myapp://

myapp://some/path/here

myapp://?foo=1&bar=2

myapp://some/path/here?foo=1&bar=2

Quand l’application est lancée à partir d’une des URL ci-dessus, la SDK de l’iPhone lancera un message à l’UIApplicationDelegate.

Si vous voulez fournir un handler personnalisé, fournissez tout simplement une implementation pour le message dans votre delegate. Par exemple :

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
  // Faites quelques choses avec l'URL ici
}

Une technique courante consiste à analyser l’URL passée en paramètre et à tirer d’elle les paramètres qui seront utilisés par les différentes vues dans l’application et de les stocker dans les préférences de l’utilisateur. Voici un exemple où nous stockons l’URL comme paramètre la valeur ”url” de cette façon…

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
    if (!url) {  return NO; }

    NSString *URLString = [url absoluteString];
    [[NSUserDefaults standardUserDefaults] setObject:URLString forKey:@"url"];
    [[NSUserDefaults standardUserDefaults] synchronize];
    return YES;
}

Maintenant, vous disposez de tout ce dont vous avez besoin pour permettre aux autres applications de réveiller la votre tout en y passant des informations.


Retour à La Une de Logo Paperblog

A propos de l’auteur


Chadiak Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Dossier Paperblog

Magazines