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 potentiels pour des protocoles spécifiques. 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 un "%s" comme espace réservé pour les données. Il doit également se trouver dans 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. Les protocoles suivants n'ont pas besoin d'un préfixe "web+" : "mailto", "mms", "nntp", "rtsp", "webcal".

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