इंस्टॉल किए गए पीडब्ल्यूए को यूआरएल मैनेज करने की अनुमति दें, ताकि आपको बेहतर अनुभव मिल सके.
यूआरएल हैंडलर के तौर पर PWA क्या है?
मान लें कि आप macOS पर Messages जैसे किसी इंस्टैंट मैसेंजर ऐप्लिकेशन का इस्तेमाल करके, अपने किसी दोस्त के साथ चैट कर रहे हैं और आप दोनों संगीत के बारे में बात कर रहे हैं. मान लें कि आप दोनों के डिवाइसों पर music.example.com PWA इंस्टॉल है. अगर आपको अपने दोस्त के साथ अपना पसंदीदा ट्रैक शेयर करना है, तो उसे https://music.example.com/rick-astley/never-gonna-give-you-up जैसा डीप लिंक भेजा जा सकता है. यह लिंक काफ़ी लंबा है. इसलिए, हो सकता है कि music.example.com के डेवलपर ने हर ट्रैक के लिए एक छोटा लिंक जोड़ने का फ़ैसला लिया हो. जैसे, https://🎵.example.com/r-a/n-g-g-y-u.
यूआरएल हैंडलर के तौर पर पीडब्ल्यूए का इस्तेमाल करने से, music.example.com जैसे ऐप्लिकेशन, https://music.example.com, https://*.music.example.com या https://🎵.example.com जैसे पैटर्न से मैच करने वाले यूआरएल के लिए, खुद को यूआरएल हैंडलर के तौर पर रजिस्टर कर सकते हैं. इससे पीडब्ल्यूए के बाहर से मिलने वाले लिंक, ब्राउज़र टैब के बजाय इंस्टॉल किए गए पीडब्ल्यूए में खुलते हैं. जैसे, इंस्टैंट मैसेंजर ऐप्लिकेशन या ईमेल क्लाइंट से मिलने वाले लिंक.
यूआरएल हैंडलर के तौर पर PWA में दो चीज़ें जोड़ी गई हैं:
"url_handlers"वेब ऐप्लिकेशन मेनिफ़ेस्ट मेंबर.web-app-origin-associationफ़ाइल फ़ॉर्मैट, ताकि स्कोप में शामिल और स्कोप से बाहर के यूआरएल असोसिएशन की पुष्टि की जा सके.
यूआरएल हैंडलर के तौर पर पीडब्ल्यूए के इस्तेमाल के उदाहरण
इस एपीआई का इस्तेमाल करने वाली साइटों के उदाहरणों में ये शामिल हैं:
- संगीत या वीडियो स्ट्रीमिंग की सुविधा देने वाली साइटें, ताकि ट्रैक या प्लेलिस्ट के लिंक, ऐप्लिकेशन के प्लेयर में खुलें.
- समाचार या आरएसएस रीडर, ताकि फ़ॉलो या सब्सक्राइब की गई साइटें, ऐप्लिकेशन के रीडर मोड में खुलें.
पीडब्ल्यूए को यूआरएल हैंडलर के तौर पर इस्तेमाल करने का तरीका
about://flags की मदद से चालू करना
ऑरिजिन ट्रायल टोकन के बिना, यूआरएल हैंडलर के तौर पर पीडब्ल्यूए को स्थानीय तौर पर आज़माने के लिए, about://flags में #enable-desktop-pwas-url-handling फ़्लैग को चालू करें.
"url_handlers" वेब ऐप्लिकेशन मेनिफ़ेस्ट मेंबर
इंस्टॉल किए गए पीडब्ल्यूए को यूआरएल पैटर्न से जोड़ने के लिए, इन पैटर्न को वेब ऐप्लिकेशन मेनिफ़ेस्ट में बताना ज़रूरी है. ऐसा "url_handlers" के सदस्य की मदद से होता है. यह origin प्रॉपर्टी वाले ऑब्जेक्ट के कलेक्शन को स्वीकार करता है. यह एक ज़रूरी string है, जो ऑरिजिन से मैच करने वाला पैटर्न है. इन पैटर्न में वाइल्डकार्ड (*) प्रीफ़िक्स का इस्तेमाल किया जा सकता है, ताकि कई सब-डोमेन (जैसे, https://*.example.com) शामिल किए जा सकें. इन ऑरिजिन से मैच करने वाले यूआरएल, इस वेब ऐप्लिकेशन से मैनेज किए जा सकते हैं. स्कीम को हमेशा https:// माना जाता है, लेकिन इसे साफ़ तौर पर बताना ज़रूरी है.
वेब ऐप्लिकेशन मेनिफ़ेस्ट के इस अंश में बताया गया है कि शुरुआती पैराग्राफ़ में दिए गए संगीत पीडब्ल्यूए के उदाहरण में, इसे कैसे सेट अप किया जा सकता है. वाइल्डकार्ड ("https://*.music.example.com") वाली दूसरी एंट्री से यह पक्का होता है कि ऐप्लिकेशन, https://www.music.example.com या https://marketing-activity.music.example.com जैसे अन्य संभावित उदाहरणों के लिए भी चालू हो जाए.
{
"url_handlers": [
{
"origin": "https://music.example.com"
},
{
"origin": "https://*.music.example.com"
},
{
"origin": "https://🎵.example.com"
}
]
}
web-app-origin-association फ़ाइल
पीडब्ल्यूए, कुछ यूआरएल (जैसे, https://🎵.example.com) के बजाय किसी दूसरे ऑरिजिन (music.example.com) पर मौजूद होता है. इसलिए, ऐप्लिकेशन को इन अन्य ऑरिजिन के मालिकाना हक की पुष्टि करनी होगी. ऐसा अन्य ऑरिजिन पर होस्ट की गई web-app-origin-association फ़ाइल में होता है.
इस फ़ाइल में मान्य JSON होना चाहिए. टॉप-लेवल स्ट्रक्चर एक ऑब्जेक्ट होता है, जिसमें "web_apps" नाम का एक मेंबर होता है. यह मेंबर, ऑब्जेक्ट का एक कलेक्शन है. इसमें हर ऑब्जेक्ट, किसी यूनीक वेब ऐप्लिकेशन की एंट्री को दिखाता है. हर ऑब्जेक्ट में ये शामिल होते हैं:
| फ़ील्ड | ब्यौरा | टाइप | डिफ़ॉल्ट |
|---|---|---|---|
"manifest" |
(ज़रूरी है) इससे जुड़े पीडब्ल्यूए के वेब ऐप्लिकेशन मेनिफ़ेस्ट की यूआरएल स्ट्रिंग | string |
लागू नहीं |
"details" |
(ज़रूरी नहीं) ऐसा ऑब्जेक्ट जिसमें शामिल किए गए और शामिल नहीं किए गए यूआरएल पैटर्न के कलेक्शन शामिल हों | object |
लागू नहीं |
हर "details" ऑब्जेक्ट में ये शामिल होते हैं:
| फ़ील्ड | ब्यौरा | टाइप | डिफ़ॉल्ट |
|---|---|---|---|
"paths" |
(ज़रूरी नहीं) अनुमति वाली पाथ स्ट्रिंग का कलेक्शन | string[] |
[] |
"exclude_paths" |
(ज़रूरी नहीं) अनुमति न दिए गए पाथ स्ट्रिंग का कलेक्शन | string[] |
[] |
ऊपर दिए गए म्यूज़िक पीडब्ल्यूए के उदाहरण के लिए, web-app-origin-association फ़ाइल का उदाहरण यहां दिया गया है. इसे ओरिजन 🎵.example.com पर होस्ट किया जाएगा. साथ ही, यह music.example.com पीडब्ल्यूए के साथ असोसिएशन को सेट अप करेगा. इसकी पहचान, इसके वेब ऐप्लिकेशन मेनिफ़ेस्ट यूआरएल से की जाती है.
{
"web_apps": [
{
"manifest": "https://music.example.com/manifest.json",
"details": {
"paths": ["/*"],
"exclude_paths": ["/internal/*"]
}
}
]
}
कोई यूआरएल कब मैच होता है?
कोई पीडब्ल्यूए, यूआरएल को हैंडल करने के लिए तब मैच करता है, जब ये दोनों शर्तें पूरी होती हैं:
- यूआरएल,
"url_handlers"में मौजूद किसी ऑरिजिन स्ट्रिंग से मैच करता हो. - ब्राउज़र,
web-app-origin-associationफ़ाइल का इस्तेमाल करके पुष्टि कर सकता है कि हर ऑरिजिन, इस ऐप्लिकेशन को इस तरह के यूआरएल को हैंडल करने की अनुमति देने के लिए सहमत है.
web-app-origin-association फ़ाइल खोजने के बारे में जानकारी
ब्राउज़र को web-app-origin-association फ़ाइल का पता लगाने के लिए, डेवलपर को web-app-origin-association फ़ाइल को ऐप्लिकेशन के रूट में मौजूद /.well-known/ फ़ोल्डर में डालना होगा. इसके लिए, फ़ाइल का नाम web-app-origin-association होना चाहिए.
डेमो
यूआरएल हैंडलर के तौर पर पीडब्ल्यूए की जांच करने के लिए, पक्का करें कि आपने ब्राउज़र फ़्लैग को सेट किया हो. इसके बाद, पीडब्ल्यूए को https://mandymsft.github.io/pwa/ पर इंस्टॉल करें. इसके वेब ऐप्लिकेशन मेनिफ़ेस्ट को देखकर, यह पता लगाया जा सकता है कि यह इन यूआरएल पैटर्न वाले यूआरएल को हैंडल करता है: https://mandymsft.github.io और https://luhuangmsft.github.io. चूंकि, बाद वाला ऑरिजिन (luhuangmsft.github.io) पीडब्ल्यूए से अलग है, इसलिए mandymsft.github.io पर मौजूद पीडब्ल्यूए को मालिकाना हक साबित करना होगा. ऐसा https://luhuangmsft.github.io/.well-known/web-app-origin-association पर होस्ट की गई web-app-origin-association फ़ाइल का इस्तेमाल करके किया जाता है.
यह जांचने के लिए कि यह सुविधा वाकई काम कर रही है या नहीं, अपनी पसंद के किसी मैसेजिंग ऐप्लिकेशन का इस्तेमाल करके खुद को एक टेस्ट मैसेज भेजें. इसके अलावा, किसी ऐसे ईमेल क्लाइंट में ईमेल देखें जो वेब पर आधारित न हो, जैसे कि macOS पर Mail. ईमेल या मैसेज में, https://mandymsft.github.io या https://luhuangmsft.github.io में से कोई एक लिंक होना चाहिए. दोनों लिंक, इंस्टॉल किए गए पीडब्ल्यूए में खुलने चाहिए.

सुरक्षा और अनुमतियां
Chromium टीम ने वेब प्लैटफ़ॉर्म की बेहतरीन सुविधाओं का ऐक्सेस कंट्रोल करना में बताए गए मुख्य सिद्धांतों का इस्तेमाल करके, पीडब्ल्यूए को यूआरएल हैंडलर के तौर पर डिज़ाइन और लागू किया है. इन सिद्धांतों में उपयोगकर्ता का कंट्रोल, पारदर्शिता, और एर्गोनॉमिक्स शामिल हैं.
ऐप्लिकेशन पर उपयोगकर्ताओं के कंट्रोल की जानकारी
अगर एक से ज़्यादा पीडब्ल्यूए, किसी यूआरएल पैटर्न के लिए यूआरएल हैंडलर के तौर पर रजिस्टर होते हैं, तो उपयोगकर्ता से पूछा जाएगा कि उसे किस पीडब्ल्यूए से पैटर्न को हैंडल करना है. इस प्रस्ताव में, ब्राउज़र टैब में शुरू होने वाले नेविगेशन को मैनेज नहीं किया जाता. इसका मकसद साफ़ तौर पर, ब्राउज़र के बाहर शुरू होने वाले नेविगेशन को मैनेज करना है.
पारदर्शिता
अगर किसी वजह से, PWA इंस्टॉल करने के दौरान असोसिएशन की पुष्टि नहीं हो पाती है, तो ब्राउज़र, ऐप्लिकेशन को उन यूआरएल के लिए यूआरएल हैंडलर के तौर पर रजिस्टर नहीं करेगा जिन पर असर पड़ा है. अगर यूआरएल हैंडलर को सही तरीके से लागू नहीं किया जाता है, तो उनका इस्तेमाल वेबसाइटों के ट्रैफ़िक को हाइजैक करने के लिए किया जा सकता है. इसलिए, ऐप्लिकेशन असोसिएशन का तरीका, इस स्कीम का एक अहम हिस्सा है.
प्लैटफ़ॉर्म के हिसाब से बनाए गए ऐप्लिकेशन, पहले से ही ऑपरेटिंग सिस्टम एपीआई का इस्तेमाल करके, उपयोगकर्ता के सिस्टम पर इंस्टॉल किए गए ऐप्लिकेशन की सूची बना सकते हैं. उदाहरण के लिए, Windows पर मौजूद ऐप्लिकेशन, यूआरएल हैंडलर की गिनती करने के लिए, FindAppUriHandlersAsync एपीआई का इस्तेमाल कर सकते हैं. अगर Windows में पीडब्ल्यूए, ओएस लेवल के यूआरएल हैंडलर के तौर पर रजिस्टर होते हैं, तो वे अन्य ऐप्लिकेशन को दिखेंगे.
अनुमति का बने रहना
कोई ऑरिजिन, पीडब्ल्यूए के साथ अपने असोसिएशन में कभी भी बदलाव कर सकता है. ब्राउज़र, इंस्टॉल किए गए वेब ऐप्लिकेशन के असोसिएशन की फिर से पुष्टि करने की कोशिश करते रहेंगे. अगर असोसिएशन डेटा में बदलाव होने या उसके उपलब्ध न होने की वजह से, यूआरएल हैंडलर के रजिस्ट्रेशन की फिर से पुष्टि नहीं हो पाती है, तो ब्राउज़र रजिस्ट्रेशन हटा देगा.
सुझाव/राय दें या शिकायत करें
Chromium की टीम, यूआरएल हैंडलर के तौर पर पीडब्ल्यूए के इस्तेमाल से जुड़े आपके अनुभवों के बारे में जानना चाहती है.
हमें एपीआई के डिज़ाइन के बारे में बताएं
क्या एपीआई में कुछ ऐसा है जो आपकी उम्मीद के मुताबिक काम नहीं करता? इसके अलावा, क्या आपको अपने आइडिया को लागू करने के लिए, कुछ और तरीके या प्रॉपर्टी चाहिए? क्या आपके पास सुरक्षा मॉडल के बारे में कोई सवाल या टिप्पणी है? इसके लिए, GitHub रिपॉज़िटरी पर जाकर, स्पेसिफ़िकेशन से जुड़ी समस्या की शिकायत करें या किसी मौजूदा समस्या के बारे में अपने विचार जोड़ें.
लागू करने से जुड़ी समस्या की शिकायत करना
क्या आपको Chromium के लागू होने में कोई गड़बड़ी मिली? या फिर, क्या लागू करने का तरीका, स्पेसिफ़िकेशन से अलग है?
new.crbug.com पर जाकर, गड़बड़ी की शिकायत करें. इसमें ज़्यादा से ज़्यादा जानकारी शामिल करें. साथ ही, गड़बड़ी को दोबारा ट्रिगर करने के निर्देश शामिल करें और Components बॉक्स में UI>Browser>WebAppInstalls डालें.
एपीआई के लिए सहायता दिखाना
क्या आपको पीडब्ल्यूए को यूआरएल हैंडलर के तौर पर इस्तेमाल करना है? सार्वजनिक तौर पर आपका समर्थन मिलने से, Chromium टीम को सुविधाओं को प्राथमिकता देने में मदद मिलती है. साथ ही, ब्राउज़र उपलब्ध कराने वाली अन्य कंपनियों को यह पता चलता है कि इन सुविधाओं को उपलब्ध कराना कितना ज़रूरी है.
#URLHandlers हैशटैग का इस्तेमाल करके, @ChromiumDev को ट्वीट भेजें और हमें बताएं कि इसका इस्तेमाल कहां और कैसे किया जा रहा है.
सहायता के लिए लिंक
- लोगों को जानकारी देने की सुविधा
- डेमो | डेमो सोर्स
- Chromium ट्रैकिंग बग
- ChromeStatus.com एंट्री
- ब्लिंक कॉम्पोनेंट:
UI>Browser>WebAppInstalls - TAG की समीक्षा
- Microsoft के दस्तावेज़
Acknowledgements
यूआरएल हैंडलर के तौर पर पीडब्ल्यूए को Microsoft Edge टीम के लू हुआंग और मैंडी चेन ने तय और लागू किया था. इस दस्तावेज़ की समीक्षा जो मेडली ने की है.