Benutzerdefinierten Protokoll-Handler registrieren

Chrome 13 enthält jetzt auch navigator.registerProtocolHandler. Dieses API ermöglicht es Webanwendungen, sich als mögliche Handler für bestimmte Protokolle zu registrieren. Nutzende könnten zum Beispiel Ihre Anwendung so auswählen, dass sie Mailto-Links verarbeitet.

Registrieren Sie ein Protokollschema wie:

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

Der erste Parameter ist das Protokoll. Das zweite ist das URL-Muster der Anwendung, die dieses Schema verarbeiten soll. Das Muster sollte „%s“ als Platzhalter für Daten enthalten und muss aus demselben Ursprung stammen wie die App, die versucht, das Protokoll zu registrieren. Sobald der Nutzer den Zugriff genehmigt hat, können Sie diesen Link z. B. über Ihre App oder andere Websites verwenden:

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

Wenn Sie auf diesen Link klicken, wird eine GET-Anfrage an http://example.com/rph?q=web%2Bmystuff%3A:some%20data gesendet. Daher müssen Sie den q-Parameter parsen und Daten manuell aus dem Protokoll entfernen.

Es ist erwähnenswert, dass navigator.registerProtocolHandler seit FF3 für Firefox implementiert wurde. Ein Unterschied bei der Implementierung von Chrome liegt in den benutzerdefinierten Protokollen. Diese müssen das Präfix „web+“ haben, wie im Beispiel oben gezeigt. Die folgenden Protokolle benötigen kein „web+“-Präfix: „mailto“, „mms“, „nntp“, „rtsp“, „webcal“.

Weitere Informationen zu dieser API finden Sie im MDN-Artikel.