इंस्टॉल किए गए PWA को उन लिंक को मैनेज करने की अनुमति दें जो ज़्यादा इंटिग्रेट किए गए अनुभव के लिए किसी खास प्रोटोकॉल का इस्तेमाल करते हैं.
स्कीम (जिसे प्रोटोकॉल भी कहा जाता है) के बारे में जानकारी
यूनिफ़ॉर्म रिसॉर्स आइडेंटिफ़ायर (यूआरआई), वर्णों का एक छोटा क्रम होता है. इससे किसी ऐब्स्ट्रैक्ट या फ़िज़िकल रिसॉर्स की पहचान की जाती है. हर यूआरआई, स्कीम के नाम से शुरू होता है. यह नाम, उस स्कीम के तहत आइडेंटिफ़ायर असाइन करने के लिए, खास जानकारी देता है. इसलिए, यूआरआई सिंटैक्स एक फ़ेडरेटेड और एक्सटेंसिबल नेमिंग सिस्टम है. इसमें हर स्कीम की खास जानकारी, उस स्कीम का इस्तेमाल करने वाले आइडेंटिफ़ायर के सिंटैक्स और सिमैंटिक को और सीमित कर सकती है. स्कीम को प्रोटोकॉल भी कहा जाता है. नीचे, कुछ स्कीम के उदाहरण दिए गए हैं.
tel:+1-816-555-1212
mailto:[email protected]
news:comp.infosystems.www.servers.unix
https://web.dev/
यूनिफ़ॉर्म रिसोर्स लोकेटर (यूआरएल) शब्द का मतलब, यूआरआई का सबसेट होता है. यह किसी रिसॉर्स की पहचान करने के साथ-साथ, उसके प्राइमरी ऐक्सेस मैकेनिज़्म (जैसे, नेटवर्क लोकेशन) के बारे में बताकर, रिसॉर्स का पता लगाने का तरीका भी बताता है.
registerProtocolHandler() तरीके के बारे में जानकारी
secure-content-only Navigator तरीके
registerProtocolHandler()
की मदद से साइटें, खास यूआरएल स्कीम को खोलने या मैनेज करने की अपनी क्षमता रजिस्टर कर सकती हैं. इसलिए, साइटों को इस तरह से तरीके को कॉल करना होगा: navigator.registerProtocolHandler(scheme, url). दोनों पैरामीटर को इस तरह से परिभाषित किया गया है:
scheme: यह एक स्ट्रिंग होती है, जिसमें वह प्रोटोकॉल होता है जिसे साइट हैंडल करना चाहती है.url: यह एक स्ट्रिंग होती है, जिसमें हैंडलर का यूआरएल होता है. इस यूआरएल में%sशामिल होना चाहिए. यह एक प्लेसहोल्डर है. इसे हैंडल किए जाने वाले एस्केप किए गए यूआरएल से बदल दिया जाएगा.
स्कीम, सुरक्षित सूची में शामिल स्कीम में से कोई एक होनी चाहिए. जैसे, mailto, bitcoin या magnet. इसके अलावा, यह web+ से शुरू होनी चाहिए. साथ ही, web+ प्रीफ़िक्स के बाद कम से कम एक या उससे ज़्यादा लोअरकेस वाले ASCII अक्षर होने चाहिए. उदाहरण के लिए, web+coffee.
इसे बेहतर तरीके से समझने के लिए, यहां फ़्लो का एक उदाहरण दिया गया है:
- उपयोगकर्ता
https://coffeeshop.example.com/पर मौजूद किसी साइट पर जाता है, जो यह कॉल करती है:navigator.registerProtocolHandler('web+coffee', 'coffee?type=%s'). - बाद में,
https://randomsite.example.com/पर जाते समय, उपयोगकर्ता<a href="web+coffee:latte-macchiato">All about latte macchiato</a>जैसे किसी लिंक पर क्लिक करता है. - इससे ब्राउज़र, इस यूआरएल पर रीडायरेक्ट हो जाता है:
https://coffeeshop.example.com/coffee?type=web%2Bcoffee%3A%2F%2Flatte-macchiato. इसके बाद, खोज स्ट्रिंग को यूआरएल से डिकोड किया जाता है. इससे यह?type=web+coffee://latte-macchiatoबन जाती है.
प्रोटोकॉल हैंडलिंग के बारे में जानकारी
पीडब्ल्यूए के लिए, यूआरएल के प्रोटोकॉल हैंडलर का रजिस्ट्रेशन करने का मौजूदा तरीका, पीडब्ल्यूए के मेनिफ़ेस्ट के ज़रिए, पीडब्ल्यूए को इंस्टॉल करने के दौरान प्रोटोकॉल हैंडलर रजिस्टर करने की सुविधा देने के बारे में है. किसी PWA को प्रोटोकॉल हैंडलर के तौर पर रजिस्टर करने के बाद, जब कोई उपयोगकर्ता किसी ब्राउज़र या प्लैटफ़ॉर्म के हिसाब से बने ऐप्लिकेशन से, mailto, bitcoin या web+music जैसी किसी खास स्कीम वाले हाइपरलिंक पर क्लिक करता है, तो रजिस्टर किया गया PWA खुल जाएगा और उसे यूआरएल मिल जाएगा. यह ध्यान रखना ज़रूरी है कि सुझाया गया मेनिफ़ेस्ट आधारित रजिस्ट्रेशन और पारंपरिक registerProtocolHandler(), दोनों ही व्यवहार में एक जैसी भूमिका निभाते हैं. हालांकि, इससे उपयोगकर्ताओं को बेहतर अनुभव देने की संभावना बनी रहती है:
- इनमें, रजिस्टर की जा सकने वाली स्कीम की सूची से जुड़ी ज़रूरी शर्तें, पैरामीटर के नाम और फ़ॉर्मैट वगैरह शामिल हैं.
- मेनिफ़ेस्ट पर आधारित रजिस्ट्रेशन में मामूली अंतर होते हैं. हालांकि, ये PWA इस्तेमाल करने वाले लोगों के अनुभव को बेहतर बनाने में मददगार हो सकते हैं. उदाहरण के लिए, ऐसा हो सकता है कि मेनिफ़ेस्ट पर आधारित PWA के रजिस्ट्रेशन के लिए, उपयोगकर्ता को PWA इंस्टॉल करने के अलावा कोई और कार्रवाई न करनी पड़े.
उपयोग के उदाहरण
- वर्ड प्रोसेसिंग वाले PWA में, किसी दस्तावेज़ में उपयोगकर्ता को
web+presentations://deck2378465जैसे प्रज़ेंटेशन का लिंक दिखता है. जब उपयोगकर्ता लिंक पर क्लिक करता है, तो प्रज़ेंटेशन PWA सही स्कोप में अपने-आप खुल जाता है और स्लाइड डेक दिखाता है. - किसी प्लैटफ़ॉर्म के चैट ऐप्लिकेशन में, चैट मैसेज पाने वाले व्यक्ति को
magnetयूआरएल का लिंक मिलता है. लिंक पर क्लिक करने पर, इंस्टॉल किया गया टॉरेंट पीडब्ल्यूए लॉन्च हो जाता है और डाउनलोड होना शुरू हो जाता है. - उपयोगकर्ता ने संगीत स्ट्रीमिंग वाला PWA इंस्टॉल किया हो. जब कोई दोस्त
web+music://songid=1234&time=0:13जैसे किसी गाने का लिंक शेयर करता है और उपयोगकर्ता उस पर क्लिक करता है, तो संगीत स्ट्रीमिंग वाला PWA अपने-आप एक अलग विंडो में लॉन्च हो जाएगा.
PWA के लिए, यूआरएल के प्रोटोकॉल हैंडलर का रजिस्ट्रेशन इस्तेमाल करने का तरीका
यूआरएल के प्रोटोकॉल हैंडलर के रजिस्ट्रेशन के लिए एपीआई, navigator.registerProtocolHandler() के आधार पर बनाया गया है. इस बार, जानकारी को वेब ऐप्लिकेशन मेनिफ़ेस्ट के ज़रिए डिक्लेरेटिव तरीके से पास किया जाता है. यह जानकारी, "protocol_handlers" नाम की नई प्रॉपर्टी में पास की जाती है. यह प्रॉपर्टी, ऑब्जेक्ट का एक कलेक्शन लेती है. इसमें दो ज़रूरी कुंजियां "protocol" और "url" होती हैं. नीचे दिए गए कोड स्निपेट में, web+tea और web+coffee को रजिस्टर करने का तरीका बताया गया है. ये वैल्यू ऐसी स्ट्रिंग होती हैं जिनमें हैंडलर का यूआरएल होता है. साथ ही, इनमें एस्केप किए गए यूआरएल के लिए ज़रूरी %s प्लेसहोल्डर होता है.
{
"protocol_handlers": [
{
"protocol": "web+tea",
"url": "/tea?type=%s"
},
{
"protocol": "web+coffee",
"url": "/coffee?type=%s"
}
]
}
एक ही प्रोटोकॉल के लिए रजिस्टर करने वाले कई ऐप्लिकेशन
अगर एक से ज़्यादा ऐप्लिकेशन, खुद को एक ही स्कीम के लिए हैंडलर के तौर पर रजिस्टर करते हैं, तो ऑपरेटिंग सिस्टम उपयोगकर्ता को एक पिकर दिखाएगा. इससे उपयोगकर्ता यह तय कर पाएगा कि उसे रजिस्टर किए गए हैंडलर में से किसका इस्तेमाल करना है. उदाहरण के लिए, mailto प्रोटोकॉल.
एक ही ऐप्लिकेशन, कई प्रोटोकॉल के लिए रजिस्टर कर रहा हो
ऊपर दिए गए कोड के सैंपल में दिखाया गया है कि एक ही ऐप्लिकेशन, खुद को कई प्रोटोकॉल के लिए रजिस्टर कर सकता है.
ऐप्लिकेशन के अपडेट और हैंडलर का रजिस्ट्रेशन
हैंडलर रजिस्ट्रेशन, ऐप्लिकेशन के दिए गए मेनिफ़ेस्ट के नए वर्शन के साथ सिंक किए जाते हैं. इसके दो मामले हैं:
- नया हैंडलर जोड़ने वाला अपडेट, हैंडलर रजिस्ट्रेशन को ट्रिगर करता है. यह ऐप्लिकेशन इंस्टॉल करने से अलग होता है.
- हैंडलर हटाने वाले अपडेट से, हैंडलर का रजिस्ट्रेशन रद्द हो जाता है. यह ऐप्लिकेशन को अनइंस्टॉल करने से अलग होता है.
DevTools में प्रोटोकॉल हैंडलर को डीबग करना
ऐप्लिकेशन > मेनिफ़ेस्ट पैनल में जाकर, प्रोटोकॉल हैंडलर सेक्शन पर जाएं. यहां उपलब्ध सभी प्रोटोकॉल देखे और टेस्ट किए जा सकते हैं.