Installer un gestionnaire de service pour le schéma URI à partir de la page Web

Lorsque vous accédez à Google Mail ou Google Calendar à partir de Chrome, une petite icône apparaît dans la barre d'adresse permettant d'installer le gestionnaire de service personnalisé pour le schéma URI (marqué avec le carré rouge dans l'image).

Icône pour installer un gestionnaire de service personnalisé

Tooltip for icon est: This page wants to install a service handler . Lorsque je clique sur icône et que Google Mail gère mailto: liens, tous les mailto: liens s'ouvrent sur Chrome.

Est-il possible de créer une page Web qui pourra installer un gestionnaire personnalisé pour mon système URI personnalisé, tout comme Google Mail?

Pour Chrome (13+), Firefox (3.0+) et Opera (11.60+), il est possible d'enregistrer une application Web en tant que gestionnaire de service pour un schéma URI personnalisé utilisant JavaScript API:

 window.navigator.registerProtocolHandler(protocol, uri, title); 
  • protocol est le protocole que le site souhaite gérer, spécifié comme une chaîne.
  • uri est l'URI pour le gestionnaire en tant que chaîne. Vous pouvez inclure "% s" pour indiquer où insérer l'URI échappé du document à traiter.
  • title est le titre du gestionnaire présenté à l'utilisateur en tant que chaîne.

Plus précisément pour Chrome, il existe une limitation qui ne permet pas d'utiliser des schémas personnalisés qui ne commencent pas avec web+ préfixe web+ (sauf ceux standard: mailto , mms , nntp , rtsp et webcal ). Donc, si vous souhaitez enregistrer votre application Web en tant que gestionnaire de service comme GMail, vous devriez écrire quelque chose comme ceci:

 navigator.registerProtocolHandler("mailto", "https://www.example.com/?uri=%s", "Example Mail"); 

ou

 navigator.registerProtocolHandler("web+myscheme", "https://www.example.com/?uri=%s", "My Cool App"); 

Faites attention au modèle URI, il doit contenir %s qui sera remplacé par l'URI actuel des clics de l'utilisateur du lien. Par exemple:

 <a href="web+myscheme:some+data">Open in "My Cool App"</a> 

Déclenchera la demande GET à http://www.example.com/?uri=web%2Bmyscheme%3Asome%20data

Voici quelques liens utiles: