Benutzerdefinierten Protokoll-Handler registrieren

Chrome 13 unterstützt endlich navigator.registerProtocolHandler. Mit dieser API können sich Web-Apps selbst als mögliche Handler für bestimmte Protokolle registrieren. Beispielsweise könnten Nutzer Ihre Anwendung so auswählen, dass sie "mailto"-Links verarbeiten soll.

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. Daher müssen Sie den q-Parameter parsen und Daten manuell aus dem Protokoll entfernen.

Hinweis: navigator.registerProtocolHandler ist bereits seit Firefox 3 implementiert. Ein Unterschied bei der Implementierung in Chrome betrifft benutzerdefinierte Protokolle. Diese müssen mit dem Präfix „web+“ versehen werden, wie im obigen Beispiel gezeigt. 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.