Benutzerdefinierten Protokoll-Handler registrieren

Chrome 13 bietet jetzt auch navigator.registerProtocolHandler. Mit dieser API können sich Web-Apps selbst als mögliche Handler für bestimmte Protokolle registrieren. Beispielsweise könnten Nutzende Ihre Anwendung für die Verarbeitung von „mailto“ auswählen. Links.

Registrieren Sie ein Protokollschema wie das:

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“ enthalten. als Platzhalter für Daten verwenden und sich am selben Ursprung befinden wie die App, 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.

In Firefox wurde navigator.registerProtocolHandler seit FF3 implementiert. Ein Unterschied bei der Implementierung von Chrome besteht in den benutzerdefinierten Protokollen. Diese müssen mit dem Präfix „web+“ versehen werden, wie im obigen Beispiel 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.