आखिरकार 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".
इस एपीआई की ज़्यादा जानकारी एमडीएन लेख में मिल सकती है.