Basculer d'une application vers une autre

AnthonyAnthony Membre
06:08 modifié dans Vos applications #1
J'étudie pour le besoin d'un client la faisabilité suivante : créer une application iPhone/iPad qui serait capable de pointer vers d'autres applications installées.
Le principe serait d'être capable à  partir d'une application A de lancer et de pointer dans une application B. (avec l'accord de l'éditeur de l'application en question)

Est ce quelque chose de techniquement faisable ?
Au delà  de la question technique, qu'est ce que vous inspire le principe de basculer d'une application vers une autre ?

Merci par avance.

Réponses

  • DrakenDraken Membre
    06:08 modifié #2
    Dans la mesure où chaque application est placée dans un espace spécifique et sécurisé, qu'on appelle la sandbox, je ne pense pas que cela soit possible. N'étant pas un grand spécialiste des couches basses du système, je peux cependant me tromper.

  • AliGatorAliGator Membre, Modérateur
    06:08 modifié #3
    N'écoute pas le buveur de perrier citron, il divague :D

    C'est tout à  fait possible, mais à  la condition que les applications à  lancer l'ai prévu.
    En fait ça utilise les NSURL : chaque application peut s'enregistrer pour indiquer qu'elle sait répondre à  un "URL Scheme" donné (le "scheme" d'une URL c'est son protocole, comme "http" ou "ftp" devant le "://")

    Par exemple si tu fais une application "MesLivres" et que tu déclares (dans son Info.plist avec les bonnes clés) savoir gérer le protocole "meslivres://", ensuite une autre application B pourra demander d'ouvrir l'URL "meslivres://" et cela va ouvrir ton application "MesLivres" depuis l'application B. Tu peux même mettre sur une page web un lien ver "meslivres://" et quand l'utilisateur va cliquer, s'il consulte la page web depuis sont iPhone ET qu'il a ton application "MesLivres" d'installée, cela va la lancer aussi.

    Ensuite tu peux même aller plus loin, puisque dans le code de ton application MesLivres tu peux implémenter une méthode handleOpenUrl (ou une méthode avec un nom simulaire je sais plus le nom exact, cf la doc) : c'est cette méthode qui sera appelée quand l'application aura été lancée depuis une URL. Dans ce cas tu peux analyser l'URL et en récupérer les éléments qui t'intéressent, et agir en conséquence.
    Tu peux par exemple décréter que les URLs du type "meslivres://showbook/1234" vont afficher la page de détail du Livre ayant l'identifiant 1234, et que les URLs du type "meslivres://bookslist" va ouvrir ton application sur la liste des livres. Il suffit d'implémenter le bon code dans handleOpenUrl ensuite.

    Un exemple type d'appli qui utilise cela est l'application FaceBook sur iPhone : si tu ouvres (tu peux tester ces URLs en les rentrant dans Safari depuis ton iPhone et en validant tu vas voir) l'URL "fb://profile" cela va en fait lancer l'application FaceBook sur ton iPhone, et afficher ensuite directement ta page de profil utilisateur. "fb://friends" ouvre l'application FaceBook sur la page qui liste tes amis, ...

    Donc après quand toi tu développes ton appli il suffit de prévoir qu'elle puisse être ouverte avec le "URL scheme" de ton choix (utiliser un "scheme" suffisament distinctif tant qu'à  faire) et tu pourras alors la lancer depuis n'importe quelle autre application.
  • DrakenDraken Membre
    06:08 modifié #4
    * pousse un tonneau de déchets toxiques dans le marigot du reptile *

  • muqaddarmuqaddar Administrateur
    06:08 modifié #5
    dans 1295886158:

    * pousse un tonneau de déchets toxiques dans le marigot du reptile *


    Ne nous le transforme pas en chaussure peau croco, on en a encore besoin.
  • DrakenDraken Membre
    06:08 modifié #6
    C'est pas faux !

  • AnthonyAnthony Membre
    06:08 modifié #7
    Merci pour cette réponse très complète et instructive.

    J'ai une autre question avant de clore ce sujet : est-il possible d'accéder à  la liste des applications installées à  partir d'une application. De manière à  ne pas proposer le service, si l'application vers laquelle on souhaite faire une redirection n'est pas installée ?
  • AliGatorAliGator Membre, Modérateur
    06:08 modifié #8
    Ca je ne crois pas par contre.
  • 06:08 modifié #9
    Cette histoire de pouvoir lancer une application depuis une autre appli est top :)

    Mais comment puis je savoir si l'application que je souhaite lancer est installée ou pas?

    Le but est dans le cas où elle n'est pas installée, on renverrait l'utilisateur sur l'appStore.
    Soit redirigé sur l'appStore ou directement valider l'achat de l'application comme pour upgrader certain jeux (Sauf que ce n'est pas pour un upgrade mais pour installer une nouvelle appli.), c'est possible ça?
  • AliGatorAliGator Membre, Modérateur
    06:08 modifié #10
    Oui, avec la méthode canOpenURL de UIApplication pour vérifier si l'URL customisée est gérée sur l'iPhone (et donc que l'app est installée) ou pas.
Connectez-vous ou Inscrivez-vous pour répondre.