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 protocoles "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. Le second est le format d'URL de l'application qui doit gérer ce schéma. Le modèle doit inclure un "%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, sur d'autres sites, etc.:

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

Un clic 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.

Notez que navigator.registerProtocolHandler est implémenté dans Firefox depuis FF3. L'une des différences dans l'implémentation de Chrome réside dans les protocoles personnalisés. Ceux-ci doivent être précédés du préfixe "web+", comme illustré dans l'exemple ci-dessus. Les protocoles suivants n'ont pas besoin d'un lien "web+" préfixe : "mailto", "mms", "nntp", "rtsp", "webcal".

Pour en savoir plus sur cette API, consultez l'article sur le Réseau Display de Google.