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