वेब ऐप्लिकेशन मेनिफ़ेस्ट आईडी प्रॉपर्टी की मदद से, PWA की खास पहचान करना

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

इस समस्या को हल करने के लिए, वेब ऐप्लिकेशन के मेनिफ़ेस्ट स्पेसिफ़िकेशन में एक नई वैकल्पिक id प्रॉपर्टी जोड़ी गई है. इसकी मदद से, अपने पीडब्ल्यूए के लिए इस्तेमाल किए गए आइडेंटिफ़ायर के बारे में साफ़ तौर पर बताया जा सकता है. मेनिफ़ेस्ट में id प्रॉपर्टी जोड़ने से, start_url या मेनिफ़ेस्ट की जगह पर निर्भरता खत्म हो जाती है. साथ ही, आने वाले समय में इन प्रॉपर्टी को अपडेट किया जा सकता है.

id प्रॉपर्टी क्या करती है?

id प्रॉपर्टी, ब्राउज़र को PWA की पहचान बताती है. अगर ब्राउज़र को कोई ऐसा मेनिफ़ेस्ट दिखता है जिसकी पहचान, पहले से इंस्टॉल किए गए PWA से मैच नहीं होती, तो उसे एक नया PWA ही माना जाएगा. भले ही, ब्राउज़र को एक ही यूआरएल से दूसरे PWA के तौर पर दिखाया गया हो. हालांकि, अगर इसमें कोई ऐसा मेनिफ़ेस्ट दिखता है जिसकी पहचान पहले से इंस्टॉल किए गए PWA से मेल खाती है, तो उसे इंस्टॉल किए गए PWA के तौर पर माना जाएगा.

ब्राउज़र समर्थन

id प्रॉपर्टी के लिए सहायता, Chrome 96 में उपलब्ध है.

अगर मेरे पास id वाला ऐप्लिकेशन नहीं है, तो मुझे क्या करना चाहिए?

आपको कुछ करने की ज़रूरत नहीं है. साथ ही, वेब ऐप्लिकेशन मेनिफ़ेस्ट में id न जोड़ने पर भी कोई गड़बड़ी नहीं होगी. ऐसा तब तक होगा, जब तक start_url और मेनिफ़ेस्ट पाथ में कोई बदलाव नहीं होता. आने वाले समय में अपने पीडब्ल्यूए को बेहतर बनाने के लिए, अपने वेब ऐप्लिकेशन मेनिफ़ेस्ट में id प्रॉपर्टी जोड़ी जा सकती है.

मैं अपना id कैसे तय और सेट करूं?

किसी PWA के लिए id का पता लगाने का सबसे सुरक्षित और सटीक तरीका यह है कि Chrome से कैलकुलेट की गई वैल्यू देखी जाए.

  1. Chrome 96 या इसके बाद के वर्शन का इस्तेमाल करके, DevTools में ऐप्लिकेशन पैनल का मेनिफ़ेस्ट पैनल खोलें.
  2. अगर वेब ऐप्लिकेशन मेनिफ़ेस्ट फ़ाइल में id के बारे में नहीं बताया गया है, तो कंप्यूट किया गया ऐप्लिकेशन आईडी प्रॉपर्टी के नीचे एक नोट दिखेगा.
  3. नोट में दिखाई गई id वैल्यू कॉपी करें (नीचे स्क्रीनशॉट देखें).
  4. नोट में दिखाई गई id वैल्यू का इस्तेमाल करके, वेब ऐप्लिकेशन मेनिफ़ेस्ट में id प्रॉपर्टी जोड़ें.

DevTools के ऐप्लिकेशन पैनल में कंप्यूट किया गया ऐप्लिकेशन आईडी.

{
  ...
  id: "/?homescreen=1",
  start_url: "/?homescreen=1",
  ...
}

अगर मैं id सेट नहीं करूं, तो क्या होगा?

चिंता न करें, कुछ भी खराब नहीं होगा. Chrome 96 से, ब्राउज़र id जनरेट करेगा. ऐसा तब होगा, जब वेब ऐप्लिकेशन मेनिफ़ेस्ट में मौजूद start_url के आधार पर, मेनिफ़ेस्ट में कोई id मौजूद न हो.

वेब ऐप्लिकेशन के मेनिफ़ेस्ट में id जोड़ने से, start_url और मेनिफ़ेस्ट पाथ को बदला जा सकता है. ऐसा तब ही किया जा सकता है, जब उनका ऑरिजिन एक ही रहे! ऐसा इसलिए, क्योंकि ब्राउज़र start_url या मेनिफ़ेस्ट पाथ के बजाय, बताए गए id के आधार पर PWA की पहचान करेगा.

मैं इसकी जांच कैसे करूं?

इस व्यवहार की जांच करने के लिए, यह तरीका अपनाएं:

  1. PWA इंस्टॉल करें.
  2. about://web-app-internals/ खोलें और इंस्टॉल किए गए PWA के लिए manifest_id और start_url प्रॉपर्टी देखें.
  3. अपने वेब ऐप्लिकेशन मेनिफ़ेस्ट में id प्रॉपर्टी जोड़ें. इसके लिए, ऊपर दिए गए मैं id को कैसे तय और सेट करूं में दिया गया तरीका अपनाएं.
  4. chrome://restart का इस्तेमाल करके ब्राउज़र को रीस्टार्ट करें. इसके बाद, about://apps से PWA लॉन्च करें. इसके बाद, मेनिफ़ेस्ट फ़ाइल को रीफ़्रेश करने के लिए, PWA को बंद करें.
  5. about://web-app-internals/ खोलें और इंस्टॉल किए गए PWA के लिए manifest_id प्रॉपर्टी देखें, ताकि यह पुष्टि की जा सके कि उसमें कोई बदलाव नहीं हुआ है.
  6. वेब ऐप्लिकेशन मेनिफ़ेस्ट में जाकर start_url को बदलें.
  7. chrome://restart का इस्तेमाल करके ब्राउज़र को रीस्टार्ट करें और about://apps से PWA लॉन्च करें. इसके बाद, मेनिफ़ेस्ट फ़ाइल को ज़बरदस्ती रीफ़्रेश करने के लिए, PWA को बंद करें.
  8. about://web-app-internals/ खोलें और इंस्टॉल किए गए PWA के लिए start_url प्रॉपर्टी देखें. इससे यह पुष्टि की जा सकेगी कि PWA सही तरीके से अपडेट हुआ है या नहीं.

अन्य संसाधन