Özel protokol işleyici kaydetme

Chrome 13'te navigator.registerProtocolHandler nihayet kullanıma sunuldu. Bu API, web uygulamalarının kendilerini belirli protokoller için olası işleyiciler olarak kaydetmesine olanak tanır. Örneğin, kullanıcılar "mailto" bağlantılarını işlemek için uygulamanızı seçebilir.

Aşağıdaki gibi bir protokol şeması kaydedin:

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

İlk parametre protokoldür. İkincisi, bu şemayı işlemesi gereken uygulamanın URL kalıbıdır. Kalıp, veriler için yer tutucu olarak bir "%s" içermelidir ve protokolü kaydetmeye çalışan uygulamayla aynı kaynakta olmalıdır. Kullanıcı erişim izni verdikten sonra bu bağlantıyı uygulamanız, diğer siteler vb. üzerinden kullanabilirsiniz:

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

Bu bağlantı tıklandığında http://example.com/rph?q=web%2Bmystuff%3A:some%20data, GET isteği gönderir. Bu nedenle, q parametresini ayrıştırmanız ve verileri protokolden manuel olarak çıkarmanız gerekir.

Firefox'un FF3'ten beri navigator.registerProtocolHandler'ü uyguladığını belirtmek isteriz. Chrome'un özel protokollerle ilgili uygulamasında bir fark vardır. Bu URL'lerin ön eklerine yukarıdaki örnekte gösterildiği gibi "web+" eklenmelidir. Aşağıdaki protokoller için "web+" ön eklerine gerek yoktur: "mailto", "mms", "nntp", "rtsp", "webcal".

Bu API hakkında daha fazla bilgiyi MDN makalesinde bulabilirsiniz.