Enregistrer un gestionnaire de protocoles personnalisé

Chrome 13 inclut enfin navigator.registerProtocolHandler. Cette API permet aux applications Web de s'enregistrer comme 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 tel que:

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

Le premier paramètre est le protocole. La seconde 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. Il doit être 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 via votre application, d'autres sites, etc.:

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

Le fait de cliquer sur ce lien envoie 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.

Il convient de noter que navigator.registerProtocolHandler a été implémenté par Firefox depuis FF3. L'une des différences d'implémentation de Chrome concerne les protocoles personnalisés. Ceux-ci doivent être précédés du préfixe "web+", comme dans l'exemple ci-dessus. Le préfixe "web+" n'est pas nécessaire pour les protocoles suivants: "mailto", "mms", "nntp", "rtsp" et "webcal".

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