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.