Özel protokol işleyici kaydetme

Chrome 13 artık navigator.registerProtocolHandler uygulamasını içeriyor. 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ı kullanmak üzere uygulamanızı seçebilirler.

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 bu kalıp, protokolü kaydetmeye çalışan uygulamayla aynı kaynakta olmalıdır. Kullanıcı erişimi onayladığında, 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 adresine GET isteği gönderilir. Dolayısıyla, q parametresini ayrıştırmanız ve verileri protokolden manuel olarak çıkarmanız gerekir.

Firefox'un FF3'ten beri navigator.registerProtocolHandler yöntemini uyguladığını belirtmekte fayda var. Chrome'un uygulamasındaki farklardan biri özel protokollerdir. Yukarıdaki örnekte görüldüğü gibi, bunların önüne "web+" konulması gerekir. Şu protokoller "web+" önekine ihtiyaç duymaz: "mailto", "mms", "nntp", "rtsp", "webcal".

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