ऐप्लिकेशन में मौजूद ब्राउज़र की मदद से, उपयोगकर्ताओं को पूरा वेब अनुभव मिलता है. इसके लिए, उन्हें आपका ऐप्लिकेशन छोड़ने की ज़रूरत नहीं होती. Android, ऐप्लिकेशन में ब्राउज़र लागू करने के लिए दो मुख्य एपीआई उपलब्ध कराता है: कस्टम टैब और वेबव्यू. जब आपके पास कोई ऐसा लिंक या विज्ञापन हो जो किसी वेब पेज पर ले जाता हो, तब ऐप्लिकेशन में मौजूद ब्राउज़र का इस्तेमाल करें. आपके पास उस पेज को सीधे अपने ऐप्लिकेशन में खोलने का विकल्प होता है. इसे पहली इमेज में देखा जा सकता है.
कस्टम टैब और वेबव्यू में से किसी एक को चुनना, आर्किटेक्चर से जुड़ा एक अहम फ़ैसला है. इससे डेवलपमेंट की स्पीड, उपयोगकर्ता अनुभव, और यूज़र इंटरफ़ेस (यूआई) पर आपका कंट्रोल तय होता है.
जल्दी से तुलना करना
अपनी ज़रूरतों के हिसाब से सही टूल चुनने के लिए, यहां दी गई टेबल का इस्तेमाल करें:
| सुविधा | WebView | कस्टम टैब |
|---|---|---|
| डिवाइस का मुख्य इस्तेमाल | वेब को मुख्य या सहायक कॉन्टेंट के तौर पर इस्तेमाल करके हाइब्रिड ऐप्लिकेशन बनाना, विज्ञापन दिखाना, ऐप्लिकेशन में कैंपेन चलाना या सेवा की शर्तों वाले पेज बनाना. | बाहरी वेबसाइटों (जैसे कि समाचार लेख या प्रॉडक्ट पेज) से कॉन्टेंट दिखाना. |
| यूज़र इंटरफ़ेस (यूआई) कंट्रोल | पूरी. यह एक View कॉम्पोनेंट है, जिसे कहीं भी रखा जा सकता है. आपके पास आस-पास के सभी यूज़र इंटरफ़ेस (यूआई) को कंट्रोल करने का विकल्प होता है. |
सीमित. टूलबार के रंग को थीम किया जा सकता है और कुछ कस्टम कार्रवाइयां जोड़ी जा सकती हैं. |
| डेटा और सेशन | सैंडबॉक्स किया गया. यह उपयोगकर्ता के मुख्य ब्राउज़र के साथ कुकी या लॉगिन की जानकारी शेयर नहीं करता. | शेयर किया गया. यह उपयोगकर्ता के डिफ़ॉल्ट ब्राउज़र सेशन का इस्तेमाल करता है. इसमें कुकी और सेव किए गए पासवर्ड शामिल होते हैं. |
| नेटिव <-> वेब ब्रिज | सही जवाब. वेब कॉन्टेंट और नेटिव ऐप्लिकेशन कोड के बीच डीप और दोनों दिशाओं में कम्यूनिकेशन के लिए, JavaScript ब्रिज का इस्तेमाल किया जा सकता है. | सीमित. बुनियादी स्ट्रिंग पास करने के लिए, window.postMessage() तरीके का इस्तेमाल किया जा सकता है. |
| डेवलपर की कोशिश | ज़्यादा. आपको लाइफ़साइकल, नेविगेशन, और परफ़ॉर्मेंस को खुद मैनेज करना होगा. | कम. इसे कोड की कुछ ही लाइनों की मदद से लागू किया जा सकता है. |
WebView
वेबव्यू एक ऐसा व्यू होता है जो वेब पेजों को आपके ऐप्लिकेशन के लेआउट का अहम हिस्सा बनाता है. यह सुविधा बहुत काम की है, लेकिन कस्टम टैब की तुलना में इसे मैनेज करना थोड़ा मुश्किल है.
वेबव्यू, रिमोट या लोकल वेब कॉन्टेंट लोड कर सकता है, JavaScript को एक्ज़ीक्यूट कर सकता है, और आपके वेब कॉन्टेंट और नेटिव ऐप्लिकेशन कोड के बीच दोनों तरफ़ से कम्यूनिकेशन चालू कर सकता है. इसकी सुविधाओं के बारे में ज़्यादा जानने के लिए, WebView क्या-क्या कर सकता है लेख पढ़ें.
वेब ऐप्लिकेशन डिलीवर करने या अपने ऐप्लिकेशन के हिस्से के तौर पर ऑनलाइन वेब पेज दिखाने के लिए भी, WebView का इस्तेमाल किया जा सकता है. उदाहरण के लिए, असली उपयोगकर्ता का ऐसा कानूनी समझौता जिसे आपको समय-समय पर अपडेट करना होता है. ज़्यादा जानने के लिए, WebView में वेब ऐप्लिकेशन बनाना लेख पढ़ें.
आपको WebView क्यों चुनना चाहिए
यहां कुछ ऐसी स्थितियां दी गई हैं जिनमें WebView का इस्तेमाल करना सही होता है:
- हाइब्रिड ऐप्लिकेशन: आपको ऐसा ऐप्लिकेशन बनाना है जिसमें वेब कॉन्टेंट और नेटिव कॉम्पोनेंट (जैसे कि नेविगेशन बार या फ़्लोटिंग ऐक्शन बटन) साथ-साथ दिखें.
- पहले पक्ष का कॉन्टेंट: आपका वेब कॉन्टेंट, ऐप्लिकेशन के अनुभव का मुख्य और इंटरैक्टिव हिस्सा है. जैसे, दस्तावेज़ एडिटर या डिज़ाइन कैनवस.
- यूज़र इंटरफ़ेस (यूआई) पर पूरा कंट्रोल: आपको वेब पेज के कॉन्टेंट में बदलाव करना होगा या उसके ऊपर नेटिव यूज़र इंटरफ़ेस (यूआई) एलिमेंट को ओवरले करना होगा.
- ज़्यादा जानकारी वाली Analytics: आपको वेब व्यू में उपयोगकर्ता की दिलचस्पी और गतिविधि के बारे में ज़्यादा जानकारी चाहिए.
अहम फ़ैक्टर
WebView का इस्तेमाल करते समय, इन मुख्य बातों का ध्यान रखें:
- परफ़ॉर्मेंस: वेबव्यू में ज़्यादा मेमोरी लग सकती है. अगर इसे ठीक से मैनेज नहीं किया जाता है, तो परफ़ॉर्मेंस से जुड़ी समस्याएं या एएनआर (ऐप्लिकेशन काम नहीं कर रहा है) गड़बड़ियां हो सकती हैं.
- सुरक्षा और रखरखाव: सुरक्षा को बेहतर बनाने और लाइफ़साइकल को मैनेज करने की ज़िम्मेदारी आपकी होती है. हालांकि, WebView के अपडेट Google Play के ज़रिए दुनिया भर में रोल आउट किए जाते हैं. इसलिए, आपको यह चिंता करने की ज़रूरत नहीं है कि इंजन पुराना हो गया है.
कस्टम टैब
उपयोगकर्ताओं को बाहरी यूआरएल पर ले जाने के लिए, कस्टम टैब एक बेहतरीन विकल्प है. ऐसा इसलिए, क्योंकि ये एक तेज़, सुरक्षित, और आसानी से इस्तेमाल की जा सकने वाली ब्राउज़र विंडो उपलब्ध कराते हैं, जो आपके ऐप्लिकेशन पर स्लाइड करती है.
आपको कस्टम टैब क्यों चुनने चाहिए
यहां कुछ ऐसे उदाहरण दिए गए हैं जिनमें कस्टम टैब का इस्तेमाल करना फ़ायदेमंद होता है:
- बाहरी लिंक: जब कोई उपयोगकर्ता ऐसी वेबसाइट के लिंक पर टैप करता है जिसका मालिकाना हक आपके पास नहीं है, तो कस्टम टैब उसे आपके ऐप्लिकेशन के कॉन्टेक्स्ट में रखते हैं. साथ ही, उसे ब्राउज़र का पूरा अनुभव देते हैं.
- आसानी से इंटिग्रेट किया जा सकता है: यह एम्बेड किए गए वेब अनुभव को चालू करने और चलाने का सबसे आसान तरीका है.
- शेयर की गई स्थिति: यह उपयोगकर्ता के डिफ़ॉल्ट ब्राउज़र के साथ कुकी शेयर करता है. इसलिए, उपयोगकर्ताओं को उन साइटों पर फिर से साइन इन नहीं करना पड़ता जिन पर वे पहले ही जा चुके हैं.
- तीसरे पक्ष की वेबसाइटों या ऐप्लिकेशन में साइन-इन करने की सुविधा: ये तीसरे पक्ष की वेबसाइटों या ऐप्लिकेशन में साइन-इन करने की सुविधा (जैसे, "Google से साइन इन करें" या "Facebook से साइन इन करें") के लिए सबसे सही हैं, क्योंकि ब्राउज़र क्रेडेंशियल को सुरक्षित तरीके से मैनेज करता है.
ज़्यादातर ब्राउज़र में कस्टम टैब काम करते हैं. हालांकि, कुछ ब्राउज़र में इन्हें ज़्यादा बेहतर तरीके से कस्टमाइज़ किया जा सकता है. ज़्यादा जानकारी के लिए, ब्राउज़र के साथ काम करने की सुविधा लेख पढ़ें.
Jetpack Compose में वेब कॉन्टेंट का इस्तेमाल करना
Jetpack Compose का इस्तेमाल करके ऐप्लिकेशन बनाते समय, कस्टम टैब और WebView, दोनों का इस्तेमाल किया जा सकता है:
- कस्टम टैब: कस्टम टैब,
Intentका इस्तेमाल करते हैं. इसलिए, इन्हें कंपोज़ फ़ंक्शन में मौजूद किसी भीContextसे लॉन्च किया जा सकता है. इससे, कस्टम टैब को आसानी से इंटिग्रेट किया जा सकता है. - WebView: Compose में अब तक कोई नेटिव WebView कंपोज़ेबल नहीं है. इसलिए, आपको अपने लेआउट में स्टैंडर्ड WebView एम्बेड करने के लिए,
AndroidViewका इस्तेमाल करना होगा.
अन्य संसाधन
Android डिवाइसों के लिए वेब पेज बनाने के लिए, वेबव्यू या कस्टम टैब एपीआई का इस्तेमाल करें. इसके लिए, ये दस्तावेज़ देखें:
- अपने ऐप्लिकेशन में वेब कॉन्टेंट को मुख्य या सहायक कॉन्टेंट के तौर पर एम्बेड करना
- एपीआई का रेफ़रंस: WebView
- कस्टम टैब के बारे में खास जानकारी
- भरोसेमंद वेब गतिविधियों के बारे में खास जानकारी
- ब्राउज़र के साथ काम करने की सुविधा