Benutzerdefinierten Protokoll-Handler registrieren

Chrome 13 unterstützt endlich navigator.registerProtocolHandler. Mit dieser API können sich Web-Apps als mögliche Handler für bestimmte Protokolle registrieren. Nutzer können beispielsweise Ihre Anwendung zum Verarbeiten von „mailto“-Links auswählen.

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 sich am selben Ursprung wie die App befinden, die versucht, das Protokoll zu registrieren. Sobald der Nutzer den Zugriff genehmigt hat, können Sie diesen Link über Ihre App, andere Websites usw. 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. Sie müssen also den Parameter q parsen und die Daten manuell aus dem Protokoll entfernen.

Hinweis: navigator.registerProtocolHandler ist in Firefox seit Version 3 implementiert. Ein Unterschied bei der Implementierung in Chrome betrifft benutzerdefinierte Protokolle. Diese müssen wie im Beispiel oben mit „web+“ vorangestellt werden. Für die folgenden Protokolle ist kein Präfix „web+“ erforderlich: „mailto“, „mms“, „nntp“, „rtsp“ und „webcal“.

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