पब्लिश होने की तारीख: 3 जून, 2026
प्रोग्रेसिव वेब ऐप्लिकेशन (PWA) ने वेब की दुनिया में क्रांति ला दी है. ये ऐप्लिकेशन जैसा अनुभव देते हैं. हालांकि, उनकी सबसे बड़ी ताकत भी एक चुनौती बनी हुई है: ऐप्लिकेशन की पहचान, वेब ऑरिजिन से जुड़ी होती है.
रीब्रैंड करने या अपने आर्किटेक्चर को फिर से बनाने (उदाहरण के लिए, www.example.com/social से social.example.com पर माइग्रेट करना) के दौरान, आपको मुश्किल फ़ैसले लेने पड़े.
इंस्टॉल किए गए PWA को "ट्रांसफ़र" करने का कोई तरीका नहीं था. उपयोगकर्ताओं को पुराने ऐप्लिकेशन को मैन्युअल तरीके से अनइंस्टॉल करना पड़ा. साथ ही, उन्हें नए ऐप्लिकेशन को इंस्टॉल करने का बटन ढूंढना पड़ा.
PWA टीम, Chrome 150 में PWA ओरिजिन माइग्रेशन की सुविधा लॉन्च करने के लिए उत्साहित है. इस नई सुविधा की मदद से, इंस्टॉल किए गए PWAs को उसी साइट के नए ऑरिजिन पर आसानी से माइग्रेट किया जा सकता है. इससे उपयोगकर्ता को कम से कम रुकावट होती है. साथ ही, उसे ज़रूरी जानकारी मिलती रहती है.
ऑरिजिन माइग्रेशन की सुविधा से क्या किया जा सकता है
उपयोगकर्ता अनुभव को बेहतर बनाए रखते हुए, अपनी साइट के स्ट्रक्चर में बदलाव किया जा सकता है:
- टेक्निकल आर्किटेक्चर में बदलाव करने की सुविधा: अपने ऐप्लिकेशन का सबडोमेन या पाथ बदलें.
- स्प्लिट ऐप्लिकेशन की स्थितियां ठीक की गईं: इस समस्या को हल किया गया है. इसमें स्टेबल आईडी के बिना
start_urlबदलने पर, गलती से ऐप्लिकेशन के डुप्लीकेट इंस्टॉलेशन बन जाते थे.
उपयोगकर्ता, अपडेट के सामान्य डायलॉग की मदद से अपने ऐप्लिकेशन माइग्रेट कर सकते हैं. उन्हें माइग्रेशन के बारे में उसी तरह से सूचना दी जाती है जिस तरह ऐप्लिकेशन के स्टैंडर्ड अपडेट के बारे में दी जाती है. सिर्फ़ एक क्लिक से, पुराना ऐप्लिकेशन अनइंस्टॉल हो जाता है. साथ ही, नया ऐप्लिकेशन इंस्टॉल और लॉन्च हो जाता है.
किसी PWA को माइग्रेट करने का तरीका
किसी PWA को माइग्रेट करने के लिए, यह तरीका अपनाएं. पोस्ट के बाकी हिस्से में ज़्यादा जानकारी दी गई है:
- हैंडशेक डिप्लॉय करना:
- नए ऐप्लिकेशन में
migrate_fromजोड़ें. - पुराने ऑरिजिन पर मौजूद
/.well-known/web-app-origin-associationफ़ाइल मेंallow_migrationफ़ील्ड जोड़ें.
- नए ऐप्लिकेशन में
- व्यवहार चुनें:
suggest(या खाली) से उपयोगकर्ता को रुकावट नहीं आती. यह शुरुआती रोलआउट के दौरान मददगार हो सकता है.forceसे उपयोगकर्ता को ब्लॉक कर दिया जाता है. साथ ही, अगर उपयोगकर्ता पुराने यूआरएल का इस्तेमाल जारी नहीं रख सकता, तो माइग्रेशन ज़रूरी है. - पुराने ऐप्लिकेशन को अप-टू-डेट रखें: अगर पुरानी साइट, नई साइट पर रीडायरेक्ट करती है, तो
migrate_fromब्लॉक मेंinstall_urlप्रॉपर्टी का इस्तेमाल करें. इससे यह पक्का किया जा सकेगा कि ब्राउज़र को संभावित अपडेट के लिए, पुराना मेनिफ़ेस्ट मिल सके. - डेस्टिनेशन मेनिफ़ेस्ट में
idलागू करें: Chrome को डेस्टिनेशन ऐप्लिकेशन मेनिफ़ेस्ट मेंidफ़ील्ड शामिल करने की ज़रूरत होती है. इससे यह पक्का होता है कि ऐप्लिकेशन,idसेट किए बिनाstart_urlमें बदलाव करके, स्प्लिट ऐप्लिकेशन बनाने की आम गलती नहीं करेगा.
टू-वे हैंडशेक: यह कैसे काम करता है
सुरक्षा पक्की करने और किसी दूसरे पक्ष के कंट्रोल को रोकने के लिए, माइग्रेशन के दौरान पुराने और नए ऑरिजिन के बीच सुरक्षित हैंडशेक होना ज़रूरी है. इस हैंडशेक से यह पक्का होता है कि दोनों साइटों को एक ही इकाई कंट्रोल करती है.
पहला चरण: नया ऐप्लिकेशन, पुराने ऐप्लिकेशन के बारे में जानकारी देता है (ज़रूरी है)
नए ऐप्लिकेशन के वेब ऐप्लिकेशन मेनिफ़ेस्ट में migrate_from फ़ील्ड जोड़ें.
// Manifest at https://fileman.google.com/manifest.json
{
"name": "File Manager",
"id": "/files/",
"start_url": "/files/index.html",
....
"migrate_from": [
"https://drive.google.com/"
]
}
दूसरा चरण: पुराने ऑरिजिन से माइग्रेशन की पुष्टि करना (ज़रूरी है)
किसी नई साइट को पुराने ऐप्लिकेशन को हाइजैक करने से रोकने के लिए, पुराने ऑरिजिन को माइग्रेशन की अनुमति देनी होगी. यह .well-known कॉन्फ़िगरेशन फ़ाइल की मदद से ऐसा करता है.
// File at https://drive.google.com/.well-known/web-app-origin-association
{
"https://fileman.google.com/files/": {
"allow_migration": true
}
}
तीसरा चरण: प्रॉऐक्टिव सिग्नलिंग (ज़रूरी नहीं)
उपयोगकर्ता के नई साइट पर जाने का इंतज़ार किए बिना अपडेट को ट्रिगर करने के लिए, पुराने ऐप्लिकेशन के मेनिफ़ेस्ट को अपडेट करें, ताकि वह नए ऐप्लिकेशन की ओर इशारा करे.
// Manifest at https://drive.google.com/manifest.json
{
"name": "Drive",
"start_url": "/",
"migrate_to": {
"id": "https://fileman.google.com/files/",
"install_url": "https://fileman.google.com/drive/installwebapp?usp=migrate"
}
}
चौथा चरण: रीडायरेक्ट मैनेज करना (ज़रूरी नहीं)
migrate_to फ़ील्ड का इस्तेमाल करने के बजाय, माइग्रेशन के बारे में सूचना दी जा सकती है. इसके लिए, पुराने ऐप्लिकेशन के यूआरएल को नए ऐप्लिकेशन पर रीडायरेक्ट करें. साथ ही, scope_extensions पर भरोसा करें, ताकि पुराने ऐप्लिकेशन में स्कोप से बाहर का बैनर न दिखे. इसका मतलब है कि पुराने ऐप्लिकेशन का मेनिफ़ेस्ट कभी नहीं दिखेगा. इसलिए, इसे कभी अपडेट नहीं किया जा सकता. ऐप्लिकेशन माइग्रेट होने से पहले, पुराने ऐप्लिकेशन को अपडेट करने की अनुमति देने के लिए, migrate_from में install_url सेट करें. इससे ब्राउज़र को ऐसे यूआरएल के बारे में सूचना मिलेगी जिसे फ़ेच करने पर, रीडायरेक्ट किए बिना भी पुराना मेनिफ़ेस्ट अटैच किया जा सकता है.
// Manifest at https://fileman.google.com/manifest.json
{
"name": "File Manager",
"id": "/files/",
"start_url": "/files/index.html",
....
"migrate_from": [
{
"id": "https://drive.google.com/",
"install_url": "https://drive.google.com/drive/installwebapp?usp=migrate"
}
]
}
हो गया! इसका यूज़र एक्सपीरियंस, ऐप्लिकेशन अपडेट करने के लिए इस्तेमाल किए जाने वाले यूज़र एक्सपीरियंस जैसा ही होता है. इसमें उपयोगकर्ता को ऐप्लिकेशन विंडो के सबसे ऊपर दाएं कोने में सूचना मिलती है:

ऐप्लिकेशन के अपडेट की समीक्षा करें पर क्लिक करने से, यहां दिया गया यूज़र एक्सपीरियंस दिखता है. यह इस बात पर निर्भर करता है कि मेनिफ़ेस्ट में क्या बदलाव किया गया है:

उपयोगकर्ता अनुभव को कंट्रोल करना
behavior फ़्लैग का इस्तेमाल करके, यह तय किया जा सकता है कि माइग्रेशन कितना ज़्यादा होना चाहिए:
- सुझाएं (डिफ़ॉल्ट): उपयोगकर्ता को सूचना मिलती है. उदाहरण के लिए, ऐप्लिकेशन मेन्यू में. वे अपने ऐप्लिकेशन को अपडेट कर सकते हैं, उसे अनइंस्टॉल कर सकते हैं या डायलॉग बॉक्स लॉन्च करके माइग्रेशन को अनदेखा कर सकते हैं.
- लागू करना: अगली बार ऐप्लिकेशन लॉन्च करने पर, उपयोगकर्ता को एक डायलॉग दिखेगा. उन्हें नए ऑरिजिन पर अपडेट करना होगा या ऐप्लिकेशन को अनइंस्टॉल करना होगा (कृपया नीचे दिया गया स्क्रीनशॉट देखें).
यहां दिए गए उदाहरण में, इस विकल्प को सेट करने का तरीका बताया गया है,
"migrate_from": [
{
"id": "https://example.com/social/",
"behavior": "force" // or suggest
}
]

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