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