Android ऐप्लिकेशन में वेब कॉन्टेंट को रेंडर करने के लिए, अलग-अलग कॉम्पोनेंट का इस्तेमाल कैसे किया जा सकता है.
Android प्लैटफ़ॉर्म 10 साल से ज़्यादा समय से इस्तेमाल हो रहा है. शुरुआत से ही Android प्लैटफ़ॉर्म, वेब के लिए बेहतर तरीके से काम कर रहा है. इसे WebView के साथ शिप किया गया है. यह एक ऐसा कॉम्पोनेंट है जिसकी मदद से डेवलपर, अपने Android ऐप्लिकेशन के अंदर वेब का इस्तेमाल कर सकते हैं. इसके अलावा, Android की मदद से डेवलपर इस प्लैटफ़ॉर्म पर अपना ब्राउज़र इंजन इस्तेमाल कर सकते हैं, जिससे प्रतिस्पर्धा और इनोवेशन को बढ़ावा मिलता है.
डेवलपर कई तरीकों से अपने Android ऐप्लिकेशन में वेब शामिल कर सकते हैं. वेबव्यू का इस्तेमाल अक्सर विज्ञापनों को रेंडर करने के लिए किया जाता है. जैसे, Android यूआई एलिमेंट के साथ इस्तेमाल किए जाने वाले लेआउट कॉम्पोनेंट के तौर पर या HTML 5 गेम की पैकेजिंग के लिए. कस्टम टैब से डेवलपर को इन-ऐप्लिकेशन ब्राउज़र बनाने और तीसरे पक्ष के वेब कॉन्टेंट पर आसानी से नेविगेट करने की सुविधा मिलती है. भरोसेमंद वेब गतिविधि की मदद से, डेवलपर Android ऐप्लिकेशन में अपने प्रोग्रेसिव वेब ऐप्लिकेशन (PWA) का इस्तेमाल कर सकते हैं. इन्हें Play Store से डाउनलोड किया जा सकता है.
Android वेबव्यू
वेबव्यू, डेवलपर को उनके Android ऐप्लिकेशन में मॉडर्न एचटीएमएल, सीएसएस, और JavaScript का ऐक्सेस देता है. साथ ही, कॉन्टेंट को APK में शिप करने या इंटरनेट पर होस्ट किए जाने की सुविधा भी देता है. यह Android के सबसे सुविधाजनक और दमदार कॉम्पोनेंट में से एक है. इसका इस्तेमाल उन ज़्यादातर मामलों में किया जा सकता है जहां किसी Android ऐप्लिकेशन में वेब कॉन्टेंट शामिल किया जाता है. AdMob जैसी विज्ञापन सेवाओं को चालू करने से लेकर, प्रोजेक्ट बनाने और शिप करने तक की पूरी प्रोसेस वाले ऐसे HTML5 गेम जो WebGL जैसे मॉडर्न एपीआई का इस्तेमाल करते हैं.
हालांकि, जब इसे इन-ऐप्लिकेशन ब्राउज़र बनाने या किसी Android ऐप्लिकेशन में PWA को शामिल करने के लिए इस्तेमाल किया जाता है, तो WebView में वेब प्लैटफ़ॉर्म की सुरक्षा, सुविधाएं, और क्षमताएं मौजूद नहीं होती हैं.
इन-ऐप्लिकेशन ब्राउज़र चैलेंज
समय के साथ, ज़्यादा से ज़्यादा डेवलपर ने ऐसे ब्राउज़र बनाए हैं जो तीसरे पक्ष की वेबसाइटों पर तीसरे पक्ष के कॉन्टेंट को शामिल करके, तीसरे पक्ष के कॉन्टेंट को तीसरे पक्ष की वेबसाइटों पर ले जाते हैं. उन अनुभवों को इन-ऐप्लिकेशन ब्राउज़र के नाम से जाना जाता है.
WebView, मॉडर्न वेब टेक्नोलॉजी स्टैक के लिए पूरी तरह से काम करता है. साथ ही, यह WebGL जैसे कई आधुनिक वेब एपीआई के साथ काम करता है. हालांकि, वेबव्यू मुख्य रूप से एक वेब यूआई टूलकिट है. यह वेब प्लैटफ़ॉर्म की सभी सुविधाओं के साथ काम करता है और न ही इस पर काम करता है. अगर किसी एपीआई में पहले से ही वेब ब्लूटूथ जैसा कोई ओएस-लेवल विकल्प मौजूद है या उसे ब्राउज़र यूज़र इंटरफ़ेस (यूआई) लागू करने की ज़रूरत है, जैसे कि पुश नोटिफ़िकेशन, तो हो सकता है कि वह काम न करे. जैसे-जैसे वेब प्लैटफ़ॉर्म बेहतर हो रहा है और ऐसी और सुविधाएं जोड़ी जा रही हैं जो सिर्फ़ Android ऐप्लिकेशन के लिए उपलब्ध थीं, यह अंतर और भी बढ़ता जाएगा. ऐप्लिकेशन डेवलपर यह कंट्रोल नहीं करते कि तीसरे पक्ष का कॉन्टेंट खोलते समय किन सुविधाओं का इस्तेमाल किया जाए. इसलिए, इन-ऐप्लिकेशन ब्राउज़र या प्रोग्रेसिव वेब ऐप्लिकेशन खोलने के लिए, WebView एक खराब विकल्प बन जाता है. अगर WebView ने सभी वेब प्लैटफ़ॉर्म सुविधाओं के लिए काम किया है, तो भी डेवलपर को अनुमतियों या पुश नोटिफ़िकेशन जैसी सुविधाओं के लिए कोड लिखना होगा और अपना यूज़र इंटरफ़ेस (यूआई) लागू करना होगा. इससे उपयोगकर्ताओं के लिए एक जैसा अनुभव पाना मुश्किल हो जाता है.
इन-ऐप्लिकेशन ब्राउज़र के तौर पर वेबव्यू का इस्तेमाल करने पर, सुरक्षा से जुड़ी ज़रूरी बातें
वेबव्यू, एम्बेडर ऐप्लिकेशन को कुकी और DOM के साथ-साथ रेंडर किए गए कॉन्टेंट का पूरा ऐक्सेस देता है. ये बेहतरीन सुविधाएं हैं, जिनके लिए उपयोगकर्ताओं को बहुत ज़्यादा भरोसा करने की ज़रूरत होती है.
वेबव्यू को ब्राउज़र बनाने के फ़्रेमवर्क के तौर पर नहीं बनाया गया है, इसलिए इसमें मॉडर्न ब्राउज़र में उपलब्ध सुरक्षा से जुड़ी सुविधाएं नहीं होती हैं.
मल्टी-प्रोसेस आर्किटेक्चर और साइट आइसोलेशन
ब्राउज़र को इस तरह डिज़ाइन किया जाता है कि वे भरोसेमंद कॉन्टेंट को रेंडर और उस पर लागू करते समय सुरक्षित रहें. मॉडर्न ब्राउज़र, गैर-भरोसेमंद या नुकसान पहुंचाने वाले कॉन्टेंट पर नेविगेट करते समय उपयोगकर्ता को सुरक्षित रखने के लिए, मल्टी-प्रोसेस आर्किटेक्चर और साइट आइसोलेशन जैसी तकनीकों का इस्तेमाल करते हैं.
कई प्रोसेस वाले आर्किटेक्चर के बिना, वेब पेज की वजह से होने वाली क्रैश से पूरा ब्राउज़र ऐप्लिकेशन क्रैश हो सकता है या पूरे डिवाइस को कंट्रोल करने के लिए, जोखिम की आशंका का फ़ायदा उठाया जा सकता है. साइट आइसोलेशन, सुरक्षा की एक और लेयर जोड़ देता है. इससे, गैर-भरोसेमंद साइटों के लिए, अन्य साइटों की जानकारी को ऐक्सेस करना और उसे चुराना मुश्किल हो जाता है.
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 के साथ काम करने जैसी अन्य सुविधाएं जल्द ही आने वाली हैं.
भरोसेमंद वेब गतिविधियों में खोले गए यूआरएल को PWA होने की उम्मीद होती है. साथ ही, इनमें व्यवहार और परफ़ॉर्मेंस की विशेषताओं का एक सेट होता है. इसलिए, भरोसेमंद वेब गतिविधि, PWA के अंदर खोले जाने वाले PWA के लिए क्वालिटी से जुड़ी शर्तें पेश करती है.
मौजूदा सलूशन की सीमाएं
डेवलपर के सुझाव से पता चला कि वेबव्यू के लचीलेपन के साथ-साथ कस्टम टैब के साथ प्लैटफ़ॉर्म के साथ काम करने की ज़रूरत है, ताकि वे अपने इन-ऐप्लिकेशन ब्राउज़र में DOM ऐक्सेस कर सकें या JavaScript इंजेक्ट कर सकें.
कस्टम टैब, असरदार तरीके से उपयोगकर्ता का ब्राउज़र रेंडर किया जाने वाला एक टैब होता है. इसमें कस्टम यूज़र इंटरफ़ेस (यूआई) होता है या जिसमें कोई यूज़र इंटरफ़ेस (यूआई) नहीं होता. इसका मतलब है कि ब्राउज़र, निजता और सुरक्षा को लेकर उपयोगकर्ता की उम्मीदों पर खरा उतरना होगा. इस वजह से, कुछ सुविधाएं काम नहीं करेंगी.
Google की 'वेब पर Android' टीम, इस्तेमाल के उदाहरणों को हल करने के विकल्पों पर काम कर रही है. साथ ही, उन समाधानों के साथ प्रयोग कर रही है. ज़्यादा जानकारी के लिए हमारे साथ बने रहें!
खास जानकारी
वेबव्यू तब काम का होता है, जब किसी ऐप्लिकेशन को उसके Android ऐप्लिकेशन में एचटीएमएल, सीएसएस, और JavaScript की ज़रूरत होती है. हालांकि, वह मॉडर्न वेब पर उपलब्ध पुश नोटिफ़िकेशन, वेब ब्लूटूथ वगैरह जैसी ज़्यादा बेहतर सुविधाओं और क्षमताओं का इस्तेमाल नहीं करता. आधुनिक वेब प्लैटफ़ॉर्म के लिए डिज़ाइन किए गए कॉन्टेंट को खोलने का सुझाव नहीं दिया जाता, क्योंकि हो सकता है कि यह डेवलपर के हिसाब से न दिखे. इन-ऐप्लिकेशन ब्राउज़र बनाने के लिए, वेबव्यू का सुझाव नहीं दिया जाता. वहीं दूसरी ओर, पहले-पक्ष का वेब कॉन्टेंट दिखाना, ऐसा क्षेत्र है जहां वेबव्यू वाकई बेहतर होते हैं.
भरोसेमंद वेब गतिविधि का इस्तेमाल तब करना चाहिए, जब डेवलपर अपने Android ऐप्लिकेशन के अंदर अपने प्रोग्रेसिव वेब ऐप्लिकेशन को फ़ुलस्क्रीन में रेंडर करना चाहते हों. इसका इस्तेमाल ऐप्लिकेशन में एकमात्र गतिविधि के तौर पर किया जा सकता है या इसे दूसरी Android गतिविधियों के साथ इस्तेमाल किया जा सकता है.
कस्टम टैब तीसरे पक्ष का ऐसा कॉन्टेंट खोलने का सुझाव दिया जाता है जिसे वेब प्लैटफ़ॉर्म के लिए डिज़ाइन किया गया है. इसे इन-ऐप्लिकेशन ब्राउज़र भी कहा जाता है.