مرورگرهای درون برنامهای به کاربران شما یک تجربه وب کامل بدون نیاز به ترک برنامه شما ارائه میدهند. اندروید دو API اصلی برای پیادهسازی مرورگرهای درون برنامهای ارائه میدهد: تبهای سفارشی و وبویوها . وقتی لینک یا تبلیغی دارید که به یک صفحه وب منتهی میشود، از یک مرورگر درون برنامهای استفاده کنید. همانطور که در شکل 1 مشاهده میکنید، میتوانید آن صفحه را مستقیماً در داخل برنامه خود باز کنید.

انتخاب بین تبهای سفارشی و وبویوها یک تصمیم معماری بزرگ است که بر سرعت توسعه، تجربه کاربری و میزان کنترل شما بر رابط کاربری تأثیر میگذارد.
مقایسه سریع
برای اینکه بفهمید کدام ابزار با نیازهای شما مطابقت دارد، از جدول زیر استفاده کنید:
| ویژگی | وب ویو | تبهای سفارشی |
|---|---|---|
| مورد استفاده اصلی | ساخت برنامههای ترکیبی با وب به عنوان محتوای اصلی یا پشتیبان، نمایش تبلیغات، کمپینهای درون برنامهای یا صفحات شرایط خدمات. | نمایش محتوا از وبسایتهای خارجی (مانند مقالات خبری یا صفحات محصول). |
| کنترل رابط کاربری | کامل. این یک کامپوننت View است که میتوانید آن را در هر جایی قرار دهید. شما تمام رابط کاربری اطراف را کنترل میکنید. | محدود. میتوانید رنگ نوار ابزار را تغییر دهید و چند اقدام سفارشی اضافه کنید. |
| دادهها و جلسات | سندباکسشده. کوکیها یا اطلاعات ورود را با مرورگر اصلی کاربر به اشتراک نمیگذارد. | اشتراکی. از جلسه مرورگر پیشفرض کاربر، شامل کوکیها و رمزهای عبور ذخیرهشده، استفاده میکند. |
| پل وب بومی <-> | بله. میتوانید از یک پل جاوا اسکریپت برای ارتباط عمیق و دو طرفه بین محتوای وب و کد برنامه بومی استفاده کنید. | محدود. میتوانید از متد window.postMessage() برای ارسال رشتههای پایه استفاده کنید. |
| تلاش توسعهدهنده | بالا. شما باید خودتان چرخه حیات، ناوبری و عملکرد را مدیریت کنید. | کم. شما میتوانید آن را تنها با چند خط کد پیادهسازی کنید. |
وب ویو
وب ویو (WebView) نمایی است که صفحات وب را به بخش جداییناپذیر از طرحبندی برنامه شما تبدیل میکند. این نوع وب ویو قدرتمند است، اما در مقایسه با تبهای سفارشی (Custom Tabs)، مدیریت آن کمی پیچیدهتر است.
WebView میتواند محتوای وب از راه دور یا محلی را بارگذاری کند، جاوا اسکریپت را اجرا کند و ارتباط دو طرفه بین محتوای وب شما و کد برنامه بومی را فعال کند. برای کسب اطلاعات بیشتر در مورد قابلیتهای آن، به «آنچه WebView میتواند انجام دهد» مراجعه کنید.
همچنین میتوانید از WebView برای ارائه یک برنامه وب یا نمایش یک صفحه وب آنلاین به عنوان بخشی از برنامه خود استفاده کنید. به عنوان مثال، یک توافقنامه کاربر نهایی که باید به صورت دورهای آن را بهروزرسانی کنید. برای کسب اطلاعات بیشتر، به ساخت برنامههای وب در WebView مراجعه کنید.
چرا باید وب ویو را انتخاب کنید
در ادامه به چند سناریویی که WebView برای آنها مناسب است، اشاره میکنیم:
- اپلیکیشنهای هیبریدی: شما در حال ساخت اپلیکیشنی هستید که محتوای وب و اجزای بومی (مانند نوار ناوبری یا دکمه عملیاتی شناور) در کنار هم قرار دارند.
- محتوای شخص ثالث: محتوای وب شما بخش اصلی و تعاملی تجربه برنامه است، مانند یک ویرایشگر سند یا یک بوم طراحی.
- کنترل کامل رابط کاربری: شما باید محتوای خود صفحه وب را تغییر دهید یا عناصر رابط کاربری بومی را روی آن قرار دهید.
- تجزیه و تحلیل عمیق: شما به بینش دقیقی از تعامل و فعالیت کاربر در نمای وب نیاز دارید.
بدهبستانهای کلیدی
موارد زیر برخی از نکات کلیدی هستند که باید هنگام استفاده از WebView در نظر گرفته شوند:
- عملکرد: وب ویو میتواند حافظه زیادی مصرف کند. اگر آن را با دقت مدیریت نکنید، ممکن است با مشکلات عملکرد یا خطاهای ANR (خطاهای عدم پاسخگویی برنامه) مواجه شوید.
- امنیت و نگهداری: شما مسئول تقویت امنیت و مدیریت چرخه عمر هستید. با این حال، بهروزرسانیهای WebView از طریق Google Play در سطح جهانی منتشر میشوند، بنابراین لازم نیست نگران قدیمی شدن موتور اصلی باشید.
تبهای سفارشی
تبهای سفارشی انتخاب بسیار خوبی برای هدایت کاربران به URLهای خارجی هستند، زیرا یک پنجره مرورگر سریع، ایمن و کاربرپسند را فراهم میکنند که روی برنامه شما نمایش داده میشود.
چرا باید تبهای سفارشی را انتخاب کنید؟
در ادامه چند سناریو وجود دارد که استفاده از تبهای سفارشی در آنها مناسب است:
- پیوندهای خارجی: وقتی کاربری روی پیوندی به وبسایتی که شما مالک آن نیستید ضربه میزند، تبهای سفارشی او را در چارچوب برنامه شما نگه میدارند و در عین حال یک تجربه کامل مرورگر را ارائه میدهند.
- سهولت ادغام: این سادهترین راه برای راهاندازی و اجرای یک تجربه وب تعبیهشده است.
- حالت اشتراکی: از آنجا که کوکیها را با مرورگر پیشفرض کاربر به اشتراک میگذارد، کاربران مجبور نیستند دوباره به سایتهایی که قبلاً بازدید کردهاند وارد شوند.
- ورود به سیستم از طریق شخص ثالث: آنها برای جریانهای ورود به سیستم از طریق شخص ثالث (مانند «ورود با گوگل» یا «ورود با فیسبوک») مناسب هستند زیرا مرورگر، اطلاعات ورود را به طور ایمن مدیریت میکند.
اگرچه اکثر مرورگرها از تبهای سفارشی پشتیبانی میکنند، اما برخی از آنها قابلیت سفارشیسازی بیشتری نسبت به سایرین ارائه میدهند. برای اطلاعات بیشتر، به پشتیبانی مرورگر مراجعه کنید.
استفاده از محتوای وب در Jetpack Compose
هنگام ساخت با Jetpack Compose میتوانید از هر دو تب سفارشی و وبویو استفاده کنید:
- تبهای سفارشی: از آنجایی که تبهای سفارشی از یک
Intentاستفاده میکنند، میتوانید آنها را از هرContextدر توابع Compose خود اجرا کنید و یکپارچهسازی بینقصی داشته باشید. - WebView: Compose هنوز WebView بومی قابل ترکیب ندارد، بنابراین برای جاسازی یک WebView استاندارد در طرحبندی خود باید از
AndroidViewاستفاده کنید.
منابع اضافی
برای توسعه صفحات وب برای دستگاههای اندروید با استفاده از WebViews یا APIهای Custom Tabs، به اسناد زیر مراجعه کنید:
- جاسازی محتوای وب در برنامه شما به عنوان محتوای اصلی یا پشتیبان
- مرجع API: وب ویو
- مرور کلی تبهای سفارشی
- مروری بر فعالیتهای وب مورد اعتماد
- پشتیبانی مرورگر