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

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>

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

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

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