PWA के लिए, यूआरएल के प्रोटोकॉल हैंडलर का रजिस्ट्रेशन

इंस्टॉल किए गए PWA को उन लिंक को हैंडल करने की अनुमति दें जो बेहतर अनुभव देने के लिए, किसी खास प्रोटोकॉल का इस्तेमाल करते हैं.

स्कीम के बारे में बैकग्राउंड (यानी प्रोटोकॉल)

यूनिफ़ॉर्म रिसॉर्स आइडेंटिफ़ायर (यूआरआई) वर्णों का एक छोटा क्रम होता है, जो अमूर्त या भौतिक संसाधन. हर यूआरआई स्कीम नाम, जो उस स्कीम में आइडेंटिफ़ायर असाइन करते हों. इस तरह, यूआरआई सिंटैक्स एक फ़ेडरेटेड और एक्सटेंसिबल है नामकरण सिस्टम में हर स्कीम के स्पेसिफ़िकेशन में, आइडेंटिफ़ायर को इकट्ठा किया जाता है. स्कीम को प्रोटोकॉल भी कहा जाता है. आप इनमें से कुछ उदाहरण देख सकते हैं स्कीम जोड़ें.

tel:+1-816-555-1212
mailto:Jane.Doe@example.com
news:comp.infosystems.www.servers.unix
https://web.dev/

यूनिफ़ॉर्म रिसोर्स लोकेटर (यूआरएल) शब्द का मतलब यूआरआई के सबसेट से है, जो संसाधन की पहचान करना, संसाधन के प्राथमिक ऐक्सेस के बारे में बताकर उसका पता लगाने का तरीका बताना मैकेनिज़्म (जैसे कि इसकी नेटवर्क लोकेशन).

registerProtocolHandler() तरीके के बारे में जानकारी

सिर्फ़ सुरक्षित कॉन्टेंट वाला Navigator तरीका registerProtocolHandler() साइटों को किसी खास यूआरएल स्कीम को खोलने या मैनेज करने के लिए, अपनी क्षमता रजिस्टर करने की सुविधा देता है. इसलिए, साइटों को इस तरीके को इस तरह कॉल करें: navigator.registerProtocolHandler(scheme, url). दोनों पैरामीटर इस तरह परिभाषित किया गया है:

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

स्कीम सेफ़लिस्ट स्कीम (उदाहरण के लिए, mailto, bitcoin या magnet) या web+ से शुरू होने चाहिए. इसके बाद, कम से कम एक या web+ प्रीफ़िक्स के बाद ज़्यादा अंग्रेज़ी के छोटे ASCII अक्षर होने चाहिए, उदाहरण के लिए, web+coffee.

इसे साफ़ तौर पर बताने के लिए, यहां फ़्लो का एक खास उदाहरण दिया गया है:

  1. उपयोगकर्ता https://coffeeshop.example.com/ पर एक ऐसी साइट पर जाता है जो यह कॉल करती है: navigator.registerProtocolHandler('web+coffee', 'coffee?type=%s').
  2. बाद में, https://randomsite.example.com/ पर जाते समय, उपयोगकर्ता किसी लिंक पर क्लिक करता है जैसे कि <a href="web+coffee:latte-macchiato">All about latte macchiato</a>.
  3. इससे ब्राउज़र इस यूआरएल पर नेविगेट करता है: https://coffeeshop.example.com/coffee?type=web%2Bcoffee%3A%2F%2Flatte-macchiato. खोज यूआरएल से डिकोड की गई स्ट्रिंग, फिर ?type=web+coffee://latte-macchiato को पढ़ती है.

प्रोटोकॉल हैंडलिंग का क्या काम है

पीडब्ल्यूए के लिए यूआरएल प्रोटोकॉल हैंडलर का रजिस्ट्रेशन का मौजूदा तरीका, प्रोटोकॉल हैंडलर ऑफ़र करने के बारे में है अपने मेनिफ़ेस्ट के ज़रिए PWA इंस्टॉल के हिस्से के तौर पर रजिस्ट्रेशन करना. पीडब्ल्यूए को प्रोटोकॉल हैंडलर, जब कोई उपयोगकर्ता किसी खास स्कीम वाले हाइपरलिंक पर क्लिक करता है, जैसे कि mailto , किसी ब्राउज़र या प्लैटफ़ॉर्म के हिसाब से बनाए गए ऐप्लिकेशन से लिया गया bitcoin या web+music, रजिस्टर किया गया पीडब्ल्यूए खुलेगा और आपको यूआरएल मिलेगा. यह ध्यान रखना ज़रूरी है कि प्रस्तावित मेनिफ़ेस्ट-आधारित रजिस्ट्रेशन और पारंपरिक registerProtocolHandler() काफ़ी मिलती-जुलती भूमिका निभा रहे हैं. हालांकि, अतिरिक्त उपयोगकर्ता-अनुभवों की संभावना की अनुमति देना:

  • समानताओं में ये शामिल हैं: रजिस्टर की जा सकने वाली स्कीम की सूची और पैरामीटर का नाम और फ़ॉर्मैट वगैरह
  • मेनिफ़ेस्ट-आधारित रजिस्ट्रेशन में थोड़े-बहुत अंतर होते हैं. हालांकि, ये अंतर बेहतर बनाने में मदद कर सकते हैं PWA का इस्तेमाल करते हैं. उदाहरण के लिए, हो सकता है कि मेनिफ़ेस्ट पर आधारित PWA रजिस्ट्रेशन के लिए, PWA को इंस्टॉल करने की प्रोसेस के अलावा, उपयोगकर्ता की अन्य कार्रवाई.

उपयोग के उदाहरण

  • वर्ड प्रोसेसिंग PWA में, उपयोगकर्ता को किसी दस्तावेज़ में प्रज़ेंटेशन का लिंक मिलता है. जैसे, web+presentations://deck2378465. जब उपयोगकर्ता लिंक पर क्लिक करता है, तो प्रज़ेंटेशन का पीडब्ल्यूए अपने-आप सही दायरे में खुलता है और स्लाइड डेक दिखाता है.
  • प्लैटफ़ॉर्म के हिसाब से बनाए गए चैट ऐप्लिकेशन में, उपयोगकर्ता को चैट मैसेज में magnet के यूआरएल का लिंक मिलता है. लिंक पर क्लिक करने पर, इंस्टॉल किया गया टोरेंट पीडब्ल्यूए लॉन्च होता है और वह डाउनलोड होना शुरू हो जाता है.
  • उपयोगकर्ता ने संगीत स्ट्रीम करने के लिए PWA इंस्टॉल किया हो. जब कोई दोस्त किसी गाने का लिंक शेयर करता है, तो web+music://songid=1234&time=0:13 और उपयोगकर्ता इस पर क्लिक करेगा, तो संगीत की स्ट्रीमिंग का 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 में प्रोटोकॉल हैंडलर को डीबग करना

ऐप्लिकेशन के ज़रिए प्रोटोकॉल हैंडलर सेक्शन पर जाएं > मेनिफ़ेस्ट पैनल. आप यहां सभी उपलब्ध प्रोटोकॉल देखे जा सकते हैं और उनकी जांच की जा सकती है.

उदाहरण के लिए, पीडब्ल्यूए का यह डेमो इंस्टॉल करें. इस प्रोटोकॉल हैंडलर सेक्शन, टाइप "अमेरिकन" और कॉफ़ी पेज खोलने के लिए टेस्ट प्रोटोकॉल पर क्लिक करें इस्तेमाल करते हैं.

मेनिफ़ेस्ट पैनल में प्रोटोकॉल हैंडलर

डेमो

Glitch पर पीडब्ल्यूए के लिए, यूआरएल प्रोटोकॉल हैंडलर के रजिस्ट्रेशन का डेमो देखा जा सकता है.

  1. https://protocol-handler.glitch.me/ पर जाकर, इंस्टॉल करने के बाद, PWA को फिर से लोड करें. ब्राउज़र ने अब PWA को ऑपरेटिंग सिस्टम के साथ web+coffee प्रोटोकॉल के लिए हैंडलर.
  2. इंस्टॉल की गई PWA विंडो में, इस लिंक पर क्लिक करें https://protocol-handler-link.glitch.me/. इससे तीन लिंक वाला एक नया ब्राउज़र टैब खोलें. पहले या दूसरे (लाटे मकिआटो या) पर क्लिक करें अमेरिकानो). अब ब्राउज़र आपको एक प्रॉम्प्ट दिखाएगा और पूछेगा कि क्या आपको ऐप्लिकेशन web+coffee प्रोटोकॉल के लिए प्रोटोकॉल हैंडलर. अगर आप सहमत हैं, तो PWA खुल जाएगा और चुनी गई कॉफ़ी.
  3. navigator.registerProtocolHandler() का इस्तेमाल करने वाले ट्रेडिशनल फ़्लो से तुलना करने के लिए, PWA में प्रोटोकॉल हैंडलर रजिस्टर करें बटन. फिर ब्राउज़र टैब में, तीसरे लिंक पर क्लिक करें (चाय). साथ ही, यह एक प्रॉम्प्ट दिखाएगा, लेकिन PWA को ब्राउज़र विंडो में नहीं, बल्कि किसी टैब में खोलेगा.
  4. किसी खास प्लैटफ़ॉर्म के ऐप्लिकेशन पर खुद को मैसेज भेजें. जैसे, Windows पर Skype <a href="web+coffee://americano">Americano</a> पर जाएं और उस पर क्लिक करें. साथ ही, यह रिपोर्ट PWA इंस्टॉल हो गया है.

यूआरएल के प्रोटोकॉल हैंडलर का डेमो, जिसमें बाईं ओर लिंक वाले ब्राउज़र टैब और दाईं ओर स्टैंडअलोन पीडब्ल्यूए विंडो है.

सुरक्षा से जुड़ी बातें

पीडब्ल्यूए इंस्टॉल करने के लिए, कॉन्टेक्स्ट को सुरक्षित रखना ज़रूरी होता है. इसलिए, प्रोटोकॉल हैंडलिंग इस कॉन्टेक्स्ट को इनहेरिट करती है कंस्ट्रेंट. रजिस्टर किए गए प्रोटोकॉल हैंडलर की सूची को किसी भी तरह वेब पर सार्वजनिक नहीं किया जाता है. इसलिए, यह फ़िंगरप्रिंटिंग वेक्टर के तौर पर इस्तेमाल नहीं किया जा सकता.

नेविगेशन की ऐसी कोशिशें जो उपयोगकर्ता ने शुरू नहीं की हैं

नेविगेशन की जो कोशिशें उपयोगकर्ता ने शुरू नहीं की हैं, लेकिन जो प्रोग्राम के हिसाब से किए गए हैं, हो सकता है कि वे खुले न हों दिखाई देता है. कस्टम प्रोटोकॉल URL का उपयोग केवल शीर्ष-स्तरीय ब्राउज़िंग संदर्भ में किया जा सकता है, लेकिन उदाहरण के लिए, यूआरएल के तौर पर डालें.

अनुमति वाले प्रोटोकॉल की सूची

registerProtocolHandler() की तरह ही, प्रोटोकॉल की एक ऐसी सूची भी है जिसे ऐप्लिकेशन रजिस्टर कर सकते हैं संभाल नहीं सकता.

शुरू किए गए प्रोटोकॉल की वजह से PWA को पहली बार लॉन्च करने पर, उपयोगकर्ता को उसे अनुमति वाला डायलॉग बॉक्स. इस डायलॉग बॉक्स में, ऐप्लिकेशन का नाम और उसका ऑरिजिन दिखेगा. साथ ही, उपयोगकर्ता से यह पूछा जाएगा कि क्या ऐप्लिकेशन को प्रोटोकॉल से लिंक मैनेज करने की अनुमति हो. अगर कोई उपयोगकर्ता अनुमति वाले डायलॉग को अस्वीकार करता है, तो रजिस्टर किए गए प्रोटोकॉल हैंडलर को ऑपरेटिंग सिस्टम अनदेखा कर देगा. प्रोटोकॉल का रजिस्ट्रेशन रद्द करने के लिए हैंडलर के तौर पर रजिस्टर किया गया है, तो उपयोगकर्ता को उसे रजिस्टर करने वाला PWA अनइंस्टॉल करना होगा. ब्राउज़र भी अपंजीकृत हो जाएगा अगर उपयोगकर्ता "मेरी पसंद याद रखें" चुनता है, तो प्रोटोकॉल हैंडलर और "अनुमति नहीं दें" चुनता है.

सुझाव/राय दें या शिकायत करें

Chromium टीम, यूआरएल प्रोटोकॉल हैंडलर रजिस्ट्रेशन के बारे में आपके अनुभव जानना चाहती है पीडब्ल्यूए.

हमें एपीआई के डिज़ाइन के बारे में बताएं

क्या एपीआई में ऐसा कुछ है जो आपकी उम्मीद के मुताबिक काम नहीं करता? या कुछ तरीके उपलब्ध नहीं हैं या प्रॉपर्टी से जोड़ना होगा? सुरक्षा से जुड़े सवाल पूछने या टिप्पणी करने के लिए मॉडल? इससे जुड़े GitHub रेपो पर, स्पेसिफ़िकेशन से जुड़ी समस्या दर्ज करें या अपनी राय मौजूद नहीं है.

लागू करने से जुड़ी समस्या की शिकायत करना

क्या आपको Chromium को लागू करने में कोई गड़बड़ी मिली? या क्या लागू करने का तरीका, स्पेसिफ़िकेशन से अलग है? new.crbug.com पर जाकर, गड़बड़ी की शिकायत करें. ज़्यादा से ज़्यादा जानकारी दें, फिर से बनाने के लिए आसान निर्देश दें और कॉम्पोनेंट में UI>Browser>WebAppInstalls डालें बॉक्स. Glitch, जल्दी और आसान रेप्रस शेयर करने के लिए शानदार काम करता है.

यह एपीआई काम करता है

क्या आपको पीडब्ल्यूए के लिए, यूआरएल प्रोटोकॉल हैंडलर का रजिस्ट्रेशन इस्तेमाल करना है? आपके सार्वजनिक समर्थन से उपयोगकर्ताओं की Chromium की टीम सुविधाओं को प्राथमिकता देती है और दूसरे ब्राउज़र वेंडर को दिखाती है कि सहायता करना कितना ज़रूरी है उन्हें.

डब्ल्यूआईसीजी डिस्कोर्स थ्रेड में बताएं कि आपको इसका इस्तेमाल कैसे करना है. इन्हें एक ट्वीट भेजें हैशटैग का इस्तेमाल करने के लिए @ChromiumDev #ProtocolHandler और हमें बताएं कि उसका इस्तेमाल कहां और कैसे किया जा रहा है.

स्वीकार की गई

PWA के लिए, यूआरएल प्रोटोकॉल हैंडलर का रजिस्ट्रेशन लागू किया गया और इसकी जानकारी दी गई फ़ाबियो रोचा, डिएगो गोंज़ले, कॉनर मूडी, और Microsoft Edge टीम से समुएल टैंग. यह लेख की समीक्षा जो मेडली और फ़ेबियो रोचा ने की. इन्होंने हीरो इमेज दी है Unस्प्लैश पर जेजे यिंग.