Android पर वेब

Android ऐप्लिकेशन में वेब कॉन्टेंट को रेंडर करने के लिए, अलग-अलग कॉम्पोनेंट का इस्तेमाल कैसे किया जा सकता है.

Android प्लैटफ़ॉर्म 10 साल से ज़्यादा समय से मौजूद है. शुरुआत से ही, इसमें वेब के लिए बेहतर सहायता उपलब्ध है. यह वेबव्यू के साथ शिप होता है. यह एक ऐसा कॉम्पोनेंट है जिसकी मदद से, डेवलपर अपने Android ऐप्लिकेशन में वेब का इस्तेमाल कर सकते हैं. इसके अलावा, Android डेवलपर को अपने ब्राउज़र इंजन को प्लैटफ़ॉर्म में शामिल करने की अनुमति देता है. इससे प्रतिस्पर्धा और इनोवेशन को बढ़ावा मिलता है.

डेवलपर अपने Android ऐप्लिकेशन में वेब को कई तरीकों से शामिल कर सकते हैं. वेबव्यू का इस्तेमाल अक्सर विज्ञापनों को रेंडर करने के लिए किया जाता है. साथ ही, इसे Android यूज़र इंटरफ़ेस (यूआई) एलिमेंट के साथ इस्तेमाल किए जाने वाले लेआउट कॉम्पोनेंट या HTML 5 गेम को पैकेज करने के लिए भी इस्तेमाल किया जाता है. कस्टम टैब की मदद से, डेवलपर ऐप्लिकेशन में ब्राउज़र बना सकते हैं और तीसरे पक्ष के वेब कॉन्टेंट को आसानी से नेविगेट करने की सुविधा दे सकते हैं. साथ ही, भरोसेमंद वेब गतिविधि की सुविधा की मदद से, डेवलपर अपने Android ऐप्लिकेशन में प्रगतिशील वेब ऐप्लिकेशन (पीडब्ल्यूए) का इस्तेमाल कर सकते हैं. इन ऐप्लिकेशन को Play Store से डाउनलोड किया जा सकता है.

Android वेबव्यू

वेबव्यू की मदद से, डेवलपर अपने Android ऐप्लिकेशन में आधुनिक एचटीएमएल, सीएसएस, और JavaScript का ऐक्सेस पा सकते हैं. साथ ही, वेबव्यू की मदद से कॉन्टेंट को APK में शिप किया जा सकता है या इंटरनेट पर होस्ट किया जा सकता है. यह Android के सबसे ज़्यादा फ़्लेक्सिबल और बेहतरीन कॉम्पोनेंट में से एक है. इसका इस्तेमाल, उन ज़्यादातर मामलों में किया जा सकता है जहां Android ऐप्लिकेशन में वेब कॉन्टेंट शामिल किया गया हो. जैसे, AdMob जैसी विज्ञापन सेवाओं को बेहतर बनाना, WebGL जैसे आधुनिक एपीआई का इस्तेमाल करके HTML5 गेम बनाना, और उन्हें शिप करना.

हालांकि, इन-ऐप्लिकेशन ब्राउज़र बनाने या Android ऐप्लिकेशन में PWA शामिल करने के लिए इस्तेमाल किए जाने पर, वेबव्यू में वेब प्लैटफ़ॉर्म की सुरक्षा, सुविधाएं, और क्षमताएं नहीं होती हैं.

इन-ऐप्लिकेशन ब्राउज़र से जुड़ी समस्या

समय के साथ, ज़्यादा से ज़्यादा डेवलपर ने अपने Android ऐप्लिकेशन में तीसरे पक्ष के कॉन्टेंट को शामिल करके, ब्राउज़र अनुभव को बेहतर बनाया है. ऐसा इसलिए किया गया है, ताकि तीसरे पक्ष की वेबसाइटों पर जाने पर, उनके उपयोगकर्ताओं को बेहतर अनुभव मिल सके. इन सुविधाओं को इन-ऐप्लिकेशन ब्राउज़र के तौर पर जाना जाता है.

WebView, आधुनिक वेब टेक्नोलॉजी स्टैक के साथ काम करता है. साथ ही, यह WebGL जैसे कई आधुनिक वेब एपीआई के साथ भी काम करता है. हालांकि, वेबव्यू मुख्य रूप से वेब यूज़र इंटरफ़ेस (यूआई) टूलकिट है. इसका मकसद वेब प्लैटफ़ॉर्म की सभी सुविधाओं के साथ काम करना नहीं है और न ही यह ऐसा करता है. अगर किसी एपीआई के लिए, वेब ब्लूटूथ जैसे ऑपरेटिंग सिस्टम के लेवल पर कोई विकल्प पहले से मौजूद है या उसे पुश नोटिफ़िकेशन जैसी सुविधाओं के लिए ब्राउज़र यूज़र इंटरफ़ेस (यूआई) की ज़रूरत है, तो हो सकता है कि वह काम न करे. जैसे-जैसे वेब प्लैटफ़ॉर्म बेहतर होता जाएगा और उसमें ऐसी ज़्यादा सुविधाएं जोड़ी जाएंगी जो पहले सिर्फ़ Android ऐप्लिकेशन के लिए उपलब्ध थीं, यह अंतर और भी बढ़ जाएगा. ऐप्लिकेशन डेवलपर के पास यह कंट्रोल करने का विकल्प नहीं होता कि तीसरे पक्ष का कॉन्टेंट खोलने के लिए कौनसी सुविधाओं का इस्तेमाल किया जाए. इसलिए, वेबव्यू को इन-ऐप्लिकेशन ब्राउज़र या प्रोग्रेसिव वेब ऐप्लिकेशन खोलने के लिए इस्तेमाल नहीं किया जाना चाहिए. भले ही, वेबव्यू में वेब प्लैटफ़ॉर्म की सभी सुविधाओं के लिए सहायता लागू की गई हो, फिर भी डेवलपर को अनुमतियों या पुश नोटिफ़िकेशन जैसी सुविधाओं के लिए कोड लिखना होगा और अपना यूज़र इंटरफ़ेस (यूआई) लागू करना होगा. इससे, उपयोगकर्ताओं के लिए एक जैसी सुविधाएं उपलब्ध कराना मुश्किल हो जाता है.

इन-ऐप्लिकेशन ब्राउज़र के तौर पर वेबव्यू का इस्तेमाल करने से जुड़ी सुरक्षा से जुड़ी बातें

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

वेबव्यू को ब्राउज़र बनाने के लिए फ़्रेमवर्क के तौर पर नहीं बनाया गया है. इसलिए, इसमें आधुनिक ब्राउज़र में उपलब्ध सुरक्षा सुविधाएं नहीं होती हैं.

मल्टी-प्रोसेस आर्किटेक्चर और साइट आइसोलेशन

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

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

Android 8.0 Oreo तक, वेबव्यू रेंडरर उसी प्रोसेस का इस्तेमाल करता था जिसका इस्तेमाल एम्बेड करने वाले ऐप्लिकेशन में किया जाता था. ओएस के नए वर्शन और ज़रूरी शर्तें पूरी करने वाले डिवाइसों पर, रेंडरर एक अलग प्रोसेस में काम करता है. हालांकि, अब भी सभी पेजों और उन पर चल रहे वेबव्यू इंस्टेंस के बीच एक ही प्रोसेस शेयर की जाती है. इस वजह से, साइट आइसोलेशन को पूरी तरह से लागू नहीं किया जा सकता.

मल्टी-प्रोसेस आर्किटेक्चर और साइट अलगाव की सुविधा न होने से, उन ऐप्लिकेशन के लिए कोई समस्या नहीं होती जो अपना और भरोसेमंद कॉन्टेंट रेंडर करते हैं. हालांकि, यह सुविधा न होने से, इन-ऐप्लिकेशन ब्राउज़र जैसे तीसरे पक्ष के अविश्वसनीय कॉन्टेंट को चलाने वाले ऐप्लिकेशन के लिए समस्या हो सकती है. साथ ही, इससे उपयोगकर्ताओं को Meltdown और Spectre जैसी कमजोरियों का सामना करना पड़ सकता है. इनका इस्तेमाल कुकी, बैंकिंग जानकारी, निजी जानकारी वगैरह चुराने के लिए किया जा सकता है.

सुरक्षित यूज़र इंटरफ़ेस (यूआई) इंडिकेटर

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

डेवलपर के पास अपने ऐप्लिकेशन में ब्राउज़र इंजन जोड़ने का भी विकल्प होता है. इस तरीके से, ऐप्लिकेशन का साइज़ बढ़ जाता है. साथ ही, यह तरीका जटिल और समय लेने वाला होता है.

इन-ऐप्लिकेशन ब्राउज़र के लिए कस्टम टैब का इस्तेमाल

कस्टम टैब की सुविधा Chrome 45 में लॉन्च की गई थी. इसकी मदद से, डेवलपर अपने ऐप्लिकेशन के हिस्से के तौर पर, उपयोगकर्ता के डिफ़ॉल्ट ब्राउज़र के टैब का इस्तेमाल कर सकते हैं. कस्टम टैब को मूल रूप से Chrome ने लॉन्च किया था. इसलिए, इसे "Chrome के कस्टम टैब" के तौर पर जाना जाता था. फ़िलहाल, यह एक Android API है. साथ ही, Chrome, Firefox, Edge, और Samsung Internet जैसे ज़्यादातर लोकप्रिय ब्राउज़र, कस्टम टैब के साथ काम करते हैं. इसलिए, इसे सिर्फ़ "कस्टम टैब" कहना ज़्यादा सही होगा.

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

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

वेबव्यू के उलट, कस्टम टैब में वे सभी वेब प्लैटफ़ॉर्म की सुविधाएं और एपीआई काम करते हैं जो उसमें इस्तेमाल किए जा रहे ब्राउज़र में काम करते हैं.

भरोसेमंद वेब गतिविधि का इस्तेमाल करके, प्रोग्रेसिव वेब ऐप्लिकेशन खोलना

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

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

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

उन्होंने PWA खोलने या वेब सूचनाओं को Android कोड से मैनेज करने के लिए, स्प्लैश स्क्रीन बनाने के लिए एपीआई भी लॉन्च किए हैं. Play Billing की सहायता जैसी और सुविधाएं जल्द ही उपलब्ध होंगी.

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

मौजूदा समाधानों की सीमाएं

डेवलपर के सुझावों से पता चला है कि कस्टम टैब को सभी प्लैटफ़ॉर्म पर काम करने वाला बनाना ज़रूरी है. साथ ही, वेबव्यू की सुविधाओं का इस्तेमाल करना भी ज़रूरी है, ताकि डेवलपर अपने इन-ऐप्लिकेशन ब्राउज़र में डीओएम को ऐक्सेस कर सकें या JavaScript इंजेक्ट कर सकें.

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

Google की 'Android पर वेब' टीम, इन इस्तेमाल के उदाहरणों को हल करने के लिए, विकल्पों और समाधानों के साथ प्रयोग कर रही है. ज़्यादा जानकारी के लिए हमारे साथ बने रहें!

खास जानकारी

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

भरोसेमंद वेब गतिविधि का इस्तेमाल तब किया जाना चाहिए, जब डेवलपर अपने Android ऐप्लिकेशन में, अपने प्रगतिशील वेब ऐप्लिकेशन को फ़ुलस्क्रीन में रेंडर करना चाहें. इसका इस्तेमाल, ऐप्लिकेशन में सिर्फ़ एक ऐक्टिविटी के तौर पर किया जा सकता है या Android की अन्य ऐक्टिविटी के साथ किया जा सकता है.

तीसरे पक्ष का ऐसा कॉन्टेंट खोलने के लिए, कस्टम टैब का सुझाव दिया जाता है जिसे वेब प्लैटफ़ॉर्म के लिए डिज़ाइन किया गया है. इसे इन-ऐप्लिकेशन ब्राउज़र भी कहा जाता है.