जब कोई उपयोगकर्ता Android पर अपनी होम स्क्रीन पर आपका प्रगतिशील वेब ऐप्लिकेशन जोड़ता है, तो Chrome आपके लिए अपने-आप एक APK जनरेट करता है. इसे कभी-कभी WebAPK भी कहा जाता है. APK के ज़रिए इंस्टॉल होने पर, आपका ऐप्लिकेशन ऐप्लिकेशन लॉन्चर और Android की ऐप्लिकेशन सेटिंग में दिख सकता है. साथ ही, इंटेंट फ़िल्टर का एक सेट रजिस्टर किया जा सकता है.
Android पर PWA इंस्टॉल करने से, उपयोगकर्ताओं की होम स्क्रीन पर प्रोग्रेसिव वेब ऐप्लिकेशन जोड़ने के अलावा और भी बहुत कुछ होता है. Chrome, आपके ऐप्लिकेशन का एक खास APK अपने-आप जनरेट और इंस्टॉल करता है. कभी-कभी हम इसे WebAPK कहते हैं. APK के ज़रिए इंस्टॉल किए जाने पर, आपका ऐप्लिकेशन ऐप्लिकेशन लॉन्चर और Android की ऐप्लिकेशन सेटिंग में दिख सकता है. साथ ही, इंटेंट फ़िल्टर का एक सेट रजिस्टर किया जा सकता है.
WebAPK जनरेट करने के लिए, Chrome वेब ऐप्लिकेशन मेनिफ़ेस्ट और अन्य मेटाडेटा को देखता है. मेनिफ़ेस्ट में अपडेट का पता चलने पर, Chrome को नया APK जनरेट करना होगा.
Android इंटेंट फ़िल्टर
जब Android पर कोई प्रगतिशील वेब ऐप्लिकेशन इंस्टॉल किया जाता है, तो वह ऐप्लिकेशन के दायरे में आने वाले सभी यूआरएल के लिए, इंटेंट फ़िल्टर का एक सेट रजिस्टर करेगा. जब कोई उपयोगकर्ता ऐप्लिकेशन के दायरे में आने वाले किसी लिंक पर क्लिक करता है, तो वह लिंक ब्राउज़र टैब में खुलने के बजाय, ऐप्लिकेशन में खुलेगा.
यहां manifest.json
का कुछ हिस्सा दिया गया है:
"start_url": "/",
"display": "standalone",
जब ऐप्लिकेशन लॉन्चर से इसका इस्तेमाल करने वाले किसी वेब ऐप्लिकेशन को लॉन्च किया जाता है, तो वह किसी भी ब्राउज़र क्रोम के बिना, https://example.com/
को स्टैंडअलोन ऐप्लिकेशन के तौर पर खोलता है.
वेबएपीके में ये इंटेंट फ़िल्टर शामिल होंगे:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="example.com"
android:pathPrefix="/" />
</intent-filter>
अगर उपयोगकर्ता https://example.com/read
पर जाने के लिए, इंस्टॉल किए गए ऐप्लिकेशन में मौजूद किसी लिंक पर क्लिक करता है, तो उसे इंटेंट से कैप्चर कर लिया जाएगा और प्रगतिशील वेब ऐप्लिकेशन में खोला जाएगा.
इंटेंट फ़िल्टर पर पाबंदी लगाने के लिए scope
का इस्तेमाल करना
अगर आपको अपनी साइट के सभी यूआरएल को अपने प्रोग्रेसिव वेब ऐप्लिकेशन से मैनेज नहीं कराना है, तो अपने वेब ऐप्लिकेशन मेनिफ़ेस्ट में scope
प्रॉपर्टी जोड़ें. scope
प्रॉपर्टी, Android को यह बताती है कि आपका वेब ऐप्लिकेशन सिर्फ़ तब खोला जाए, जब यूआरएल origin
+ scope
से मेल खाता हो. इससे आपको यह कंट्रोल करने की सुविधा मिलती है कि आपके ऐप्लिकेशन में कौनसे यूआरएल मैनेज किए जाएंगे और कौनसे यूआरएल, ब्राउज़र में खोले जाने चाहिए.
यह तब मददगार होता है, जब आपका ऐप्लिकेशन और ऐप्लिकेशन से बाहर का कॉन्टेंट एक ही डोमेन पर हो.
निम्न आंशिक manifest.json
पर विचार करें:
"scope": "/app/",
"start_url": "/app/",
"display": "standalone",
ऐप्लिकेशन लॉन्चर से लॉन्च करने पर, यह https://example.com/app/
स्टैंडअलोन ऐप्लिकेशन के तौर पर खुलेगा. इसके लिए, Chrome ब्राउज़र की ज़रूरत नहीं होगी.
पहले की तरह, जनरेट किए गए वेब APK में इंटेंट फ़िल्टर शामिल होगा. हालांकि, APK के AndroidManifest.xml
में एक अलग android:pathPrefix
एट्रिब्यूट होगा:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="example.com"
android:pathPrefix="/app/" />
</intent-filter>
आइए, कुछ उदाहरण देखते हैं:
https://example.com/app/
- /app/
में
https://example.com/app/read/book
- /app/
में
https://example.com/help/
- /app/
में नहीं है
https://example.com/about/
- /app/
में नहीं है
scope
के बारे में ज़्यादा जानने के लिए, scope
देखें. साथ ही, यह भी जानें कि इसे सेट न करने पर क्या होता है और अपने ऐप्लिकेशन के दायरे को तय करने के लिए, इसका इस्तेमाल कैसे किया जा सकता है.
अनुमतियां मैनेज करना
अनुमतियां, अन्य वेब ऐप्लिकेशन की तरह ही काम करती हैं. साथ ही, इन्हें इंस्टॉल करने के समय अनुरोध नहीं किया जा सकता. इसके बजाय, इनका अनुरोध प्रोग्राम के चलने के दौरान किया जाना चाहिए. उदाहरण के लिए, पहली बार लोड होने पर कैमरे की अनुमति न मांगें. इसके बजाय, उपयोगकर्ता के फ़ोटो लेने की कोशिश किए जाने तक इंतज़ार करें.
स्टोरेज और ऐप्लिकेशन की स्थिति मैनेज करना
भले ही, प्रोग्रेसिव वेब ऐप्लिकेशन को APK के ज़रिए इंस्टॉल किया गया हो, Chrome किसी भी डेटा को सेव करने के लिए मौजूदा प्रोफ़ाइल का इस्तेमाल करता है. साथ ही, उसे अलग नहीं किया जाएगा. इससे, ब्राउज़र और इंस्टॉल किए गए ऐप्लिकेशन के बीच, एक जैसा अनुभव मिलता है. कुकी शेयर की जाती हैं और चालू रहती हैं. क्लाइंट साइड का कोई भी स्टोरेज ऐक्सेस किया जा सकता है. साथ ही, सेवा वर्कर्स इंस्टॉल हो जाता है और इस्तेमाल के लिए तैयार हो जाता है.
WebAPK को अपडेट करना
WebAPK को अपडेट करने के तरीके की जानकारी, Chrome, वेब ऐप्लिकेशन मेनिफ़ेस्ट के अपडेट को कैसे मैनेज करता है लेख में दी गई है.
अक्सर पूछे जाने वाले सवाल
- स्प्लैश स्क्रीन जनरेट करने के लिए किन आइकॉन का इस्तेमाल किया जाता है? :
- हमारा सुझाव है कि आप स्प्लैश स्क्रीन के लिए कम से कम दो आइकॉन दें: 192 पिक्सल और 512 पिक्सल. आपने हमें बताया था कि स्प्लैश स्क्रीन पर मौजूद आइकॉन बहुत छोटे थे. Chrome 71 या इसके बाद के वर्शन में जनरेट किए गए वेबAPK, स्प्लैश स्क्रीन पर बड़ा आइकॉन दिखाएंगे. सुझाए गए आइकॉन उपलब्ध होने तक, आपको कुछ करने की ज़रूरत नहीं है.
- अगर उपयोगकर्ता ने साइट के लिए पहले से ही नेटिव ऐप्लिकेशन इंस्टॉल किया हुआ है, तो क्या होगा?
- आज की तरह, उपयोगकर्ता किसी भी नेटिव ऐप्लिकेशन के लिए, साइट से स्वतंत्र विकल्प जोड़ पाएंगे. अगर आपको लगता है कि उपयोगकर्ता दोनों ऐप्लिकेशन इंस्टॉल कर सकते हैं, तो हमारा सुझाव है कि आप अपनी साइट के आइकॉन या नाम को अपने नेटिव ऐप्लिकेशन से अलग रखें.
- अगर उपयोगकर्ता Chrome का कैश मेमोरी मिटाता है, तो क्या मेरी इंस्टॉल की गई साइट का स्टोरेज मिट जाएगा?
- हां.
- क्या नया डिवाइस लेने पर, मेरा ऐप्लिकेशन फिर से इंस्टॉल हो जाएगा?
- फ़िलहाल नहीं, लेकिन हमें लगता है कि यह एक अहम क्षेत्र है और हम इसे काम करने के तरीकों की जांच कर रहे हैं.
- अनुमतियों को कैसे मैनेज किया जाता है? क्या मुझे Chrome का प्रॉम्प्ट दिखेगा या Android का?
- अनुमतियां अब भी Chrome से मैनेज की जाएंगी. उपयोगकर्ताओं को अनुमतियां देने के लिए, Chrome के अनुरोध दिखेंगे और वे Chrome की सेटिंग में जाकर उनमें बदलाव कर पाएंगे.
- यह सुविधा Android के किन वर्शन पर काम करेगी?
- Android के लिए Chrome पर चलने वाले सभी वर्शन पर प्रोग्रेसिव वेब ऐप्लिकेशन इंस्टॉल किए जा सकते हैं. खास तौर पर, खाते के नाम और इसके बाद के वर्शन पर.
- क्या यह वेबव्यू का इस्तेमाल करता है?
- नहीं, साइट उसी वर्शन में खुलती है जिसमें उपयोगकर्ता ने साइट को जोड़ा था.
- क्या हम Play Store पर बनाए गए APK अपलोड कर सकते हैं?
- नहीं. अगर आपको अपना APK अपलोड करना है, तो भरोसेमंद वेब गतिविधियां देखें.
- क्या ये Play Store में मौजूद हैं?
- नहीं. अगर आपको Play Store में लिस्टिंग के लिए अपना APK अपलोड करना है, तो भरोसेमंद वेब गतिविधियां देखें.
- मैं Android पर किसी दूसरे ब्राउज़र का डेवलपर हूं. क्या मेरे ब्राउज़र को भी आसानी से इंस्टॉल किया जा सकता है? :
- हम इस पर काम कर रहे हैं. हम इसे Android पर सभी ब्राउज़र के लिए उपलब्ध कराने की कोशिश कर रहे हैं. जल्द ही, हम इस बारे में ज़्यादा जानकारी देंगे.