Özel protokol işleyici kaydetme

Chrome 13 sonunda navigator.registerProtocolHandler var. 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. Dolayısıyla, 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. Şu protokoller için "web+" öneki gerekmez: "mailto", "mms", "nntp", "rtsp", "webcal".

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