Article
Développement mobile
30.1.2015
Perturbation continuum temporel
4 minutes
Temps d'un café
Handoff : le lien entre votre app et votre site web
Hugo Hache
Note : Ce contenu a été créé avant que Fabernovel ne fasse partie du groupe EY, le 5 juillet 2022.

Handoff, tel que le présente Apple, répond à votre question “Mais où en étais‑je ?”. En effet, si vous utilisez une application compatible avec Handoff, il vous est possible de l’ouvrir sur un autre appareil et de retrouver à l’identique le document sur lequel vous travailliez (email, page web, traitement de texte…). Cela fonctionne entre appareils fonctionnant sous iOS (iPhone, iPad), mais également entre iOS et OS X (Mac). La plupart des applications installées par défaut (Mail, Safari, Pages, Keynote) gèrent Handoff, et les applications tierces peuvent également l’implémenter.

Si Handoff se limitait à ces fonctions, ce serait déjà un ajout bienvenu à iOS et OS X. Mais il y a un dernier détail (One more thing) : vous pouvez également utiliser Handoff entre une application et un site web ! C’est une bonne nouvelle pour tous les services accessibles depuis une application iOS mais n’ayant pas de pendant sur le Mac App Store, autrement dit l’immense majorité des services présents sur votre téléphone. Handoff ne peut pas dans ce cas être utilisé entre des applications iOS et Mac, mais il peut être utilisé entre l’application iOS et le site web du service. Cette fonction est une vraie avancée : un utilisateur peut naviguer dans une liste de vidéos depuis son iPad, et, en un clic, ouvrir une vidéo dans le navigateur de son Mac afin de la voir sur un grand écran. Inversement, il peut commencer à lire sur son Mac un article publié sur un site de nouvelles, sortir de la pièce, et le terminer sur son iPhone.

Comment cela fonctionne-t-il ? Les applications compatibles avec Handoff décrivent en permanence l’activité de l’utilisateur et y ajoutent l’URL de la page web associée au contenu. Très souvent, une activité peut se résumer par l’écran actuellement affiché dans l’application. Si vous êtes développeur : on va définir la property userActivity de n’importe quelle sous-classe de UIResponder, telle que UIViewController. L’activité est donc transmise au Mac, et un lien vers la page web associée apparaît dans son Dock. Dans l’autre sens, si l’utilisateur navigue sur un site compatible depuis son Mac, l’icône de l’application correspondante va apparaître sur l’écran d’acceuil de l’iPhone ou de l’iPad, et si l’utilisateur l’ouvre, l’application a accès à l’URL du site web et peut donc afficher le bon contenu après une simple analyse de l’adresse web.

Gérer Handoff sur un site web

Nous ne détaillerons pas le processus complet d’adoption de Handoff dans votre application : le guide Handoff Programming Guide est un ressource complète qui couvre à peu près n’importe quel cas que vous pouvez rencontrer. Cependant, nous allons partager avec vous une astuce qui nous a beaucoup aidés lorsque nous avons développé nos premiers prototypes compatibles avec Handoff.

Comme il est indiqué dans la documentation, il est nécessaire d’avoir un agrément mutuel entre l’application et le site web afin d’empêcher que des applications indésirables puissent poursuivre l’activité de n’importe quel site : une application compatible avec Handoff doit signaler le domaine du site web dans son fichier de droits sur Xcode, à la ligne com.apple.developer.associated-domains. Le site web, de son côté, doit héberger un fichier qui liste les IDs de toutes les apps approuvées par le site web. Ce fichier doit être signé par un certificat correspondant au nom de domaine du site web. Mais il y a un problème : comment tester cela sur votre serveur local ? Vous n’avez sans doute pas de certificat pour le nom d’hôte de votre ordinateur qui soit issu d’une Autorité de Certification (CA) gérée nativement par iOS. Cependant, vous pouvez créer votre propre CA et l’ajouter à votre appareil iOS de test. C’est cette astuce que nous utilisons ici.

Créer sa propre CA peut avoir l’air compliqué, mais le processus est en fait simple :

  • Créer la CA. Cela se fait en quelques clics par le biais de l’application Trousseaux d'accès
  • Exporter la CA vers son iPhone ou son iPad (par email ou tout autre moyen à votre disposition) et l’installer
  • Générer un certificat pour votre nom d’hôte depuis cette CA
  • Signer le fichier contenant les IDs des applications approuvées (procédure détaillée dans la documentation)
  • Déposer le fichier résultant, nommé apple-app-site-association, à la racine de votre site web local afin de pouvoir y accéder depuis http://<your-hostname>/apple-app-site-association.

Après avoir suivi ces étapes, vous serez prêt à commencer à prendre en charge Handoff dans vos applications !

No items found.
Pour aller plus loin :