एम्बेड किए गए वेब का इस्तेमाल करके, इन-ऐप्लिकेशन ब्राउज़िंग

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

लाल बॉक्स में ऐप्लिकेशन में मौजूद लिंक और एक ऐरो, जो दूसरी स्क्रीन की ओर इशारा कर रहा है. इस स्क्रीन पर, कस्टम टैब में खुला लिंक दिखाया गया है.
पहली इमेज. ऐप्लिकेशन में मौजूद लिंक पर क्लिक करना (बाएं) और कस्टम टैब (दाईं ओर) का इस्तेमाल करके, इन-ऐप्लिकेशन ब्राउज़र खोलना.

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

तुलना

अपनी ज़रूरतों के हिसाब से सही टूल चुनने के लिए, यहां दी गई टेबल देखें:

सुविधा WebView कस्‍टम टैब
इस्तेमाल का मुख्य उदाहरण वेब को मुख्य या सहायक कॉन्टेंट के तौर पर इस्तेमाल करके हाइब्रिड ऐप्लिकेशन बनाना, विज्ञापन दिखाना, ऐप्लिकेशन में कैंपेन चलाना या सेवा की शर्तों वाले पेज दिखाना. बाहरी वेबसाइटों (जैसे कि समाचार लेख या प्रॉडक्ट पेज) से कॉन्टेंट दिखाना.
यूज़र इंटरफ़ेस (यूआई) कंट्रोल पूरी. यह एक View कॉम्पोनेंट है, जिसे कहीं भी रखा जा सकता है. आपके पास आस-पास के सभी यूज़र इंटरफ़ेस (यूआई) को कंट्रोल करने का विकल्प होता है. सीमित है. टूलबार के रंग को थीम के हिसाब से बदला जा सकता है और कुछ कस्टम कार्रवाइयां जोड़ी जा सकती हैं.
डेटा और सेशन सैंडबॉक्स किया गया. यह उपयोगकर्ता के मुख्य ब्राउज़र के साथ कुकी या लॉगिन की जानकारी शेयर नहीं करता. शेयर किया गया. यह उपयोगकर्ता के डिफ़ॉल्ट ब्राउज़र सेशन का इस्तेमाल करता है. इसमें कुकी और सेव किए गए पासवर्ड शामिल हैं.
नेटिव <-> वेब ब्रिज वाह। वेब कॉन्टेंट और खास ऐप्लिकेशन कोड के बीच डीप और दोनों दिशाओं में कम्यूनिकेशन के लिए, JavaScript ब्रिज का इस्तेमाल किया जा सकता है. सीमित है. बुनियादी स्ट्रिंग पास करने के लिए, window.postMessage() तरीके का इस्तेमाल किया जा सकता है.
डेवलपर की कोशिश ज़्यादा. आपको लाइफ़साइकल, नेविगेशन, और परफ़ॉर्मेंस को खुद ही मैनेज करना होगा. कम. इसे लागू करने के लिए, सिर्फ़ कुछ लाइनों के कोड की ज़रूरत होती है.

WebView

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

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

वेब ऐप्लिकेशन डिलीवर करने या अपने ऐप्लिकेशन के हिस्से के तौर पर ऑनलाइन वेब पेज दिखाने के लिए भी, WebView का इस्तेमाल किया जा सकता है. उदाहरण के लिए, असली उपयोगकर्ता का ऐसा कानूनी समझौता जिसे आपको समय-समय पर अपडेट करना होता है. ज़्यादा जानने के लिए, वेबव्यू में वेब ऐप्लिकेशन बनाना लेख पढ़ें.

आपको वेबव्यू क्यों चुनना चाहिए

यहां कुछ ऐसी स्थितियां दी गई हैं जिनमें WebView का इस्तेमाल करना सही होता है:

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

अहम फ़ैक्टर

WebView का इस्तेमाल करते समय, इन अहम बातों का ध्यान रखें:

  • परफ़ॉर्मेंस: वेबव्यू में ज़्यादा मेमोरी लग सकती है. अगर इसे ठीक से मैनेज नहीं किया जाता है, तो आपको परफ़ॉर्मेंस से जुड़ी समस्याएं या एएनआर (ऐप्लिकेशन काम नहीं कर रहा है) गड़बड़ियां मिल सकती हैं.
  • सुरक्षा और रखरखाव: सुरक्षा को बेहतर बनाने और लाइफ़साइकल को मैनेज करने की ज़िम्मेदारी आपकी है. इसमें WebViewCompat.saveState() का इस्तेमाल करके, प्रोसेस को फिर से बनाने के दौरान स्टेट को बनाए रखना और Android की सेव की गई स्टेट के लेन-देन की 1 एमबी की सीमा में रहना शामिल है. हालांकि, WebView के अपडेट Google Play के ज़रिए दुनिया भर में रिलीज़ किए जाते हैं. इसलिए, आपको इसके इंजन के पुराने होने की चिंता करने की ज़रूरत नहीं है.

कस्‍टम टैब

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

आपको कस्टम टैब क्यों चुनने चाहिए

यहां कुछ ऐसे उदाहरण दिए गए हैं जिनमें कस्टम टैब का इस्तेमाल करना फ़ायदेमंद होता है:

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

ज़्यादातर ब्राउज़र में कस्टम टैब काम करते हैं. हालांकि, कुछ ब्राउज़र में दूसरों के मुकाबले ज़्यादा सुविधाएं मिलती हैं. ज़्यादा जानकारी के लिए, ब्राउज़र के साथ काम करने की सुविधा लेख पढ़ें.

Jetpack Compose में वेब कॉन्टेंट का इस्तेमाल करना

Jetpack Compose का इस्तेमाल करके ऐप्लिकेशन बनाते समय, कस्टम टैब और WebView, दोनों का इस्तेमाल किया जा सकता है:

  • कस्टम टैब: कस्टम टैब, Intent का इस्तेमाल करते हैं. इसलिए, इन्हें कंपोज़ फ़ंक्शन में मौजूद किसी भी Context से लॉन्च किया जा सकता है. इससे, कस्टम टैब को आसानी से इंटिग्रेट किया जा सकता है.
  • WebView: Compose में अब तक कोई नेटिव WebView कंपोज़ेबल नहीं है. इसलिए, आपको अपने लेआउट में स्टैंडर्ड WebView एम्बेड करने के लिए, AndroidView का इस्तेमाल करना होगा.

अन्य संसाधन

Android डिवाइसों के लिए, वेबव्यू या कस्टम टैब एपीआई का इस्तेमाल करके वेब पेज बनाने के लिए, ये दस्तावेज़ देखें: