कस्टम प्रोटोकॉल हैंडलर रजिस्टर करना

Chrome 13 में अब navigator.registerProtocolHandler का डेटा भी शामिल है. यह एपीआई, वेब ऐप्लिकेशन को कुछ खास प्रोटोकॉल के लिए, खुद को संभावित हैंडलर के तौर पर रजिस्टर करने की अनुमति देता है. उदाहरण के लिए, उपयोगकर्ता "mailto" को मैनेज करने के लिए आपके ऐप्लिकेशन को चुन सकते हैं लिंक.

इस तरह की प्रोटोकॉल स्कीम रजिस्टर करें:

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

पहला पैरामीटर प्रोटोकॉल है. दूसरा ऐप्लिकेशन का यूआरएल पैटर्न होता है, जिसे इस स्कीम को मैनेज करना चाहिए. पैटर्न में '%s' शामिल होना चाहिए यह डेटा के लिए प्लेसहोल्डर के तौर पर सेट होना चाहिए. यह उसी ऑरिजिन पर होना चाहिए जिसका ऑरिजिन, प्रोटोकॉल को रजिस्टर करने की कोशिश करने वाले ऐप्लिकेशन पर किया जा रहा है. उपयोगकर्ता से ऐक्सेस मिलने के बाद, अपने ऐप्लिकेशन, दूसरी साइटों वगैरह के ज़रिए इस लिंक का इस्तेमाल किया जा सकता है.:

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

उस लिंक पर क्लिक करने से, http://example.com/rph?q=web%2Bmystuff%3A:some%20data को GET का अनुरोध मिलता है. इसलिए, आपको q पैरामीटर को पार्स करना होगा और प्रोटोकॉल से मैन्युअल तरीके से डेटा हटाना होगा.

यह ध्यान देने वाली बात है कि Firefox ने FF3 के बाद से navigator.registerProtocolHandler लागू किए हुए हैं. Chrome के लागू होने में एक अंतर कस्टम प्रोटोकॉल का होता है. जैसा कि ऊपर दिए गए उदाहरण में बताया गया है, इनके आगे "web+" लगा होना चाहिए. इन प्रोटोकॉल के लिए "web+" की ज़रूरत नहीं है प्रीफ़िक्स: "mailto", "mms", "nntp", "rtsp", "webcal".

इस एपीआई के बारे में ज़्यादा जानकारी, MDN लेख में मिल सकती है.