Enregistrer un gestionnaire de protocoles personnalisé

Chrome 13 inclut enfin navigator.registerProtocolHandler. Cette API permet aux applications Web de s'enregistrer en tant que gestionnaires possibles pour des protocoles particuliers. Par exemple, les utilisateurs peuvent sélectionner votre application pour gérer les liens "mailto".

Enregistrez un schéma de protocole, par exemple :

navigator.registerProtocolHandler(
    'web+mystuff', 'http://example.com/rph?q=%s', 'My App');

Le premier paramètre correspond au protocole. Le second est le format d'URL de l'application qui doit gérer ce schéma. Le format doit inclure "%s" comme espace réservé pour les données et doit se trouver sur la même origine que l'application qui tente d'enregistrer le protocole. Une fois que l'utilisateur a approuvé l'accès, vous pouvez utiliser ce lien dans votre application, d'autres sites, etc. :

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

Cliquez sur ce lien pour envoyer une requête GET à http://example.com/rph?q=web%2Bmystuff%3A:some%20data. Vous devez donc analyser le paramètre q et supprimer manuellement les données du protocole.

Notez que Firefox a implémenté navigator.registerProtocolHandler depuis FF3. Une différence dans l'implémentation de Chrome concerne les protocoles personnalisés. Elles doivent être précédées du préfixe "web+", comme illustré dans l'exemple ci-dessus. Il n'est pas nécessaire d'utiliser le préfixe "web+" pour les protocoles suivants : "mailto", "mms", "nntp", "rtsp", "webcal".

Pour en savoir plus sur cette API, consultez l'article MDN.