توفّر المتصفّحات داخل التطبيق للمستخدمين تجربة ويب كاملة بدون الحاجة إلى مغادرة تطبيقك. يوفّر Android واجهتَي برمجة تطبيقات أساسيتَين لتنفيذ المتصفّحات داخل التطبيق: علامات التبويب المخصّصة ومكوّنات WebView. استخدِم متصفّحًا داخل التطبيق عندما يكون لديك رابط أو إعلان يؤدي إلى صفحة ويب. يمكنك فتح هذه الصفحة مباشرةً داخل تطبيقك، كما هو موضّح في الشكل 1.
يُعدّ الاختيار بين "علامات التبويب المخصّصة" و"WebView" قرارًا مهمًا في التصميم يؤثر في سرعة التطوير وتجربة المستخدم ومدى تحكّمك في واجهة المستخدم.
مقارنة سريعة
استخدِم الجدول التالي لمساعدتك في تحديد الأداة التي تناسب احتياجاتك:
| الميزة | عرض الويب | علامات التبويب المخصصة |
|---|---|---|
| حالة الاستخدام الأساسية | إنشاء تطبيقات هجينة تستخدم الويب كمحتوى أساسي أو داعم، أو لعرض الإعلانات الصورية أو حملات التطبيقات أو صفحات بنود الخدمة | عرض محتوى من مواقع إلكترونية خارجية (مثل المقالات الإخبارية أو صفحات المنتجات) |
| عنصر تحكّم في واجهة المستخدم | كاملة: وهو مكوّن View يمكنك وضعه في أي مكان. يمكنك التحكّم في واجهة المستخدم المحيطة بالكامل. |
محدودة: يمكنك تخصيص لون شريط الأدوات وإضافة بعض الإجراءات المخصّصة. |
| البيانات والجلسات | معزولة: ولا يشارك ملفات تعريف الارتباط أو عمليات تسجيل الدخول مع المتصفّح الرئيسي للمستخدم. | تمت المشاركة. ويستخدم جلسة المتصفّح التلقائية للمستخدم، بما في ذلك ملفات تعريف الارتباط وكلمات المرور المحفوظة. |
| مجموعة إعدادات نقل المحتوى بين التطبيق المحلي وتطبيق الويب | نعم يمكنك استخدام جسر JavaScript لإجراء اتصال ثنائي الاتجاه بين المحتوى على الويب ورمز التطبيق الأصلي. | محدودة: يمكنك استخدام طريقة window.postMessage() لتمرير السلسلة الأساسية. |
| جهود المطوّرين | مرتفعة: وعليك إدارة مراحل النشاط والتنقّل والأداء بنفسك. | منخفضة ويمكنك تنفيذه باستخدام بضعة أسطر من الرموز فقط. |
عرض الويب
WebView هو عرض يجعل صفحات الويب جزءًا لا يتجزأ من تنسيق تطبيقك. إنّها فعّالة، ولكنّها أكثر تعقيدًا في التعامل معها مقارنةً بـ "علامات التبويب المخصّصة".
يمكن لـ WebView تحميل محتوى على الويب عن بُعد أو محليًا، وتنفيذ JavaScript، وإتاحة الاتصال ثنائي الاتجاه بين محتوى على الويب ورمز التطبيق الأصلي. لمزيد من المعلومات حول إمكانات WebView، يُرجى الاطّلاع على ما يمكن أن يفعله WebView.
يمكنك أيضًا استخدام WebView لتقديم تطبيق ويب أو عرض صفحة ويب على الإنترنت كجزء من تطبيقك، مثل اتفاقية المستخدم النهائي التي تحتاج إلى تعديلها بشكل دوري. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة إنشاء تطبيقات ويب في WebView.
مزايا اختيار WebView
في ما يلي بعض السيناريوهات التي يكون فيها WebView مناسبًا:
- التطبيقات المختلطة: إذا كنت بصدد إنشاء تطبيق يتضمّن محتوى على الويب ومكوّنات أصلية (مثل شريط التنقّل أو زر الإجراء الرئيسي) جنبًا إلى جنب.
- المحتوى الخاص بالطرف الأول: يشكّل المحتوى على الويب جزءًا أساسيًا وتفاعليًا من تجربة التطبيق، مثل محرِّر المستندات أو لوحة التصميم.
- التحكّم الكامل في واجهة المستخدم: عليك تعديل محتوى صفحة الويب نفسها أو وضع عناصر واجهة المستخدم الأصلية فوقها.
- إحصاءات تفصيلية: تحتاج إلى إحصاءات تفصيلية حول تفاعل المستخدمين ونشاطهم ضمن WebView.
المفاضلات الرئيسية
في ما يلي بعض الجوانب الإيجابية والسلبية التي يجب مراعاتها عند استخدام WebView:
- الأداء: يمكن أن تستهلك WebView قدرًا كبيرًا من الذاكرة. وإذا لم تتم إدارتها بعناية، فقد تواجه مشاكل في الأداء أو أخطاء "التطبيق لا يستجيب" (ANR).
- الأمان والصيانة: أنت مسؤول عن تعزيز الأمان وإدارة مراحل النشاط. ويشمل ذلك إدارة حفظ الحالة
عبر إعادة إنشاء العملية باستخدام
WebViewCompat.saveState()والبقاء ضمن حدّ معاملة الحالة المحفوظة في Android الذي يبلغ 1 ميغابايت. ومع ذلك، يتم إصدار تحديثات WebView على مستوى العالم من خلال Google Play، لذلك لا داعي للقلق بشأن تقادم المحرك الأساسي.
علامات التبويب المخصصة
تُعدّ "علامات التبويب المخصّصة" خيارًا رائعًا لتوجيه المستخدمين إلى عناوين URL خارجية، لأنّها توفّر نافذة متصفّح سريعة وآمنة وسهلة الاستخدام تظهر فوق تطبيقك.
مزايا اختيار "علامات التبويب المخصّصة"
في ما يلي بعض السيناريوهات التي تكون فيها "علامات التبويب المخصّصة" مناسبة:
- الروابط الخارجية: عندما ينقر المستخدم على رابط يؤدي إلى موقع إلكتروني لا تملكه، تتيح له "علامات التبويب المخصّصة" البقاء في سياق تطبيقك مع توفير تجربة متصفّح بوظائف كاملة.
- سهولة الدمج: هي أبسط طريقة لإعداد تجربة ويب مضمّنة وتشغيلها.
- الحالة المشتركة: بما أنّ هذه الميزة تشارك ملفات تعريف الارتباط مع المتصفّح التلقائي للمستخدم، لن يحتاج المستخدمون إلى تسجيل الدخول مرة أخرى إلى المواقع الإلكترونية التي سبق لهم زيارتها.
- تسجيل الدخول من خلال جهة خارجية: تُعدّ هذه النوافذ مناسبة لمسارات تسجيل الدخول من خلال جهة خارجية (مثل "تسجيل الدخول باستخدام حساب Google" أو "تسجيل الدخول باستخدام حساب Facebook") لأنّ المتصفّح يتعامل مع بيانات الاعتماد بأمان.
على الرغم من أنّ معظم المتصفّحات تتيح استخدام "علامات التبويب المخصّصة"، يوفّر بعضها خيارات تخصيص أكثر من غيرها. لمزيد من المعلومات، يُرجى الاطّلاع على المتصفّحات المتوافقة.
استخدام المحتوى على الويب في Jetpack Compose
يمكنك استخدام كلّ من "علامات التبويب المخصّصة" وWebView عند إنشاء التطبيقات باستخدام Jetpack Compose:
- علامات التبويب المخصّصة: بما أنّ علامات التبويب المخصّصة تستخدم
Intent، يمكنك تشغيلها من أيContextفي دوال Compose، ما يتيح لك دمجها بسلاسة. - WebView: لا تتضمّن حزمة Compose دالة مركّبة أصلية لمكوّن WebView حتى الآن، لذا عليك استخدام
AndroidViewلتضمين مكوّن WebView عادي في التنسيق.
مراجع إضافية
لتطوير صفحات ويب للأجهزة التي تعمل بنظام التشغيل Android باستخدام واجهات برمجة التطبيقات WebView أو "علامات التبويب المخصّصة"، يُرجى الاطّلاع على المستندات التالية:
- تضمين محتوى على الويب في تطبيقك كمحتوى أساسي أو داعم
- مرجع واجهة برمجة التطبيقات: WebView
- نظرة عامة على علامات التبويب المخصّصة
- نظرة عامة على "النشاط الموثوق به على الويب"
- إدارة حالة WebView بفعالية
- المتصفّحات المتوافقة