طريقة استخدام المكوّنات المختلفة لعرض محتوى الويب داخل تطبيقات Android
تم استخدام نظام Android الأساسي منذ أكثر من عشر سنوات، ومنذ بدايته حصل على دعم رائع للويب. تم شحنه مع WebView، وهو مكون يتيح للمطورين استخدام الويب داخل تطبيقات Android الخاصة بهم. وعلاوة على ذلك، يسمح Android للمطوّرين باستخدام محرك المتصفّح الخاص بهم في النظام الأساسي لتعزيز المنافسة والابتكار.
يمكن للمطوّرين تضمين الويب في تطبيقات Android بعدة طرق. ويتم استخدام WebView بشكل متكرر لعرض الإعلانات، أو كمكون تنسيق يُستخدم مع عناصر واجهة المستخدم في Android، أو لتعبئة ألعاب HTML 5. تتيح "علامات التبويب المخصصة" للمطوّرين إنشاء متصفّحات داخل التطبيق وتوفير تجربة انتقال سلسة لمحتوى الويب الخاص بالجهات الخارجية، ويسمح "النشاط على الويب الموثوق به" للمطوّرين باستخدام تطبيقات الويب التقدّمية (PWA) الخاصة بهم في تطبيقات Android التي يمكن تنزيلها من "متجر Play".
Android WebView
تتيح مكوّنات WebView للمطوّرين استخدام تنسيقات HTML وCSS وJavaScript الحديثة داخل تطبيقات Android، كما تسمح بشحن المحتوى داخل حزمة APK أو استضافته على الإنترنت. وهو أحد مكونات Android الأكثر مرونة وفعالية، ويمكن استخدامه في معظم حالات الاستخدام التي يتم فيها تضمين محتوى الويب في أحد تطبيقات Android. بداية من تعزيز الخدمات الإعلانية مثل AdMob إلى إنشاء وشحن ألعاب HTML5 الكاملة التي تستخدم واجهات برمجة تطبيقات حديثة مثل WebGL.
وعند استخدام WebView لإنشاء متصفّح داخل التطبيق أو تضمين تطبيق ويب تقدّمي (PWA) في أحد تطبيقات Android، تفتقر إليه ميزات الأمان والميزات والإمكانات التي يوفّرها النظام الأساسي للويب.
تحدي المتصفّح داخل التطبيق
بمرور الوقت، ازداد عدد مطوّري البرامج الذين أنشأوا تجارب متصفّح لدمج محتوى تابع لجهات خارجية في تطبيقات Android بهدف توفير تجربة أكثر سلاسة للمستخدمين عند الانتقال إلى المواقع الإلكترونية التابعة لجهات خارجية. أصبحت هذه التجارب تُعرف باسم المتصفحات داخل التطبيق.
وتوفّر مكوّنات WebView دعمًا شاملاً لحزمة تكنولوجيا الويب الحديثة وتتوافق مع العديد من واجهات برمجة تطبيقات الويب الحديثة، مثل WebGL. ولكن WebView هو في الأساس مجموعة أدوات لواجهة المستخدم على الويب. ليس الغرض منه إتاحة كل ميزات منصة الويب أو عدم إتاحة كل ميزاتها. قد لا تكون واجهة برمجة التطبيقات متوافقة إذا كان لها بديل على مستوى نظام التشغيل، مثل Web Bluetooth، أو إذا كانت تتطلب تنفيذ واجهة مستخدم المتصفح، مثل الإشعارات الفورية. مع تطوّر منصة الويب وإضافة المزيد من الميزات التي كانت متوفّرة فقط لتطبيقات Android، ستزداد هذه الفجوة. لا يتحكّم مطوّرو التطبيقات في الميزات المستخدَمة عند فتح المحتوى التابع لجهات خارجية، لذلك يجعل WebView خيارًا سيئًا للمتصفّحات داخل التطبيقات أو عند فتح تطبيقات الويب التقدّمية. حتى إذا نفذ WebView الدعم لجميع ميزات النظام الأساسي للويب، سيظل المطوّرون بحاجة إلى كتابة التعليمات البرمجية وتنفيذ واجهة المستخدم الخاصة بهم لوظائف مثل الأذونات أو الإشعارات الفورية، ما يجعل من الصعب تحقيق التناسق للمستخدمين.
اعتبارات الأمان لاستخدام WebView كمتصفّح داخل التطبيق
يتيح WebView لتطبيق أداة التضمين الوصول الكامل إلى المحتوى المعروض، بما في ذلك ملفات تعريف الارتباط ونموذج العناصر في المستند (DOM). وهي ميزات فعالة تتطلب مستوى عالٍ من الثقة من المستخدمين.
نظرًا لأن WebView غير مصمم كإطار عمل لإنشاء المتصفحات، فهو يفتقر إلى ميزات الأمان المتوفرة في المتصفحات الحديثة.
البنية متعددة العمليات وعزل الموقع
تم تصميم المتصفحات لتكون آمنة أثناء عرض وتنفيذ محتوى غير موثوق به. لضمان بقاء المستخدم آمنًا أثناء التنقّل في المحتوى الذي يُحتمل أن يكون غير موثوق به أو حتى ضار، تستخدم المتصفحات الحديثة أساليب مثل استخدام البنية متعددة العمليات وعزل المواقع.
بدون البنية متعددة العمليات، يمكن أن يؤدي العطل الناتج عن صفحة الويب إلى تعطُّل تطبيق المتصفح بالكامل، أو يمكن استغلال ثغرة أمنية للسيطرة على الجهاز بأكمله. يضيف عزل المواقع الإلكترونية طبقة أمان أخرى تجعل من الصعب على المواقع الإلكترونية غير الموثوقة الوصول إلى المعلومات من المواقع الأخرى وسرقتها.
حتى الإصدار Android 8.0 Oreo، كان عارض WebView يستخدم العملية نفسها التي يستخدمها تطبيق التضمين. في الإصدارات الأحدث من نظام التشغيل، وعندما تكون الأجهزة قادرة بشكل كافٍ، يعمل العارض في عملية مختلفة. ومع ذلك، لا تزال هناك عملية واحدة مشترَكة بين جميع الصفحات ومثيلات WebView التي تشغّلها، ما يجعل من المستحيل تنفيذ عزل الموقع بالكامل.
لا يمثّل عدم توفُّر بنية متعددة العمليات وعزل الموقع الإلكتروني مشكلة في التطبيقات التي تعرض المحتوى الذي تملكه ويثق به، ولكنه قد يشكّل مشكلة في التطبيقات التي تعرض محتوًى غير موثوق به تابعًا لجهات خارجية، مثل المتصفحات داخل التطبيقات، ويؤدي إلى تعرُّض المستخدمين لثغرات أمنية مثل ثغرات أمنية مثل Meltdown وSpectre لسرقة ملفات تعريف الارتباط والتفاصيل المصرفية والمعلومات الشخصية وغيرها.
مؤشرات واجهة المستخدم الآمنة
من المهم أيضًا توفير مؤشرات أمان جيدة للمستخدمين، وقد تبذل المتصفحات جهدًا كبيرًا وتتطوّر باستمرار في هذا المجال. ومع ذلك، يفتقر WebView إلى واجهة برمجة تطبيقات للتحقق من أمان الاتصال بموقع إلكتروني، ما يتيح لمطوّري التطبيقات إنشاء مؤشرات أمان جديرة بالثقة. قد يؤدي عدم توفّر واجهة برمجة التطبيقات هذه مثلاً إلى عدم تطابق عنوان URL المعروض في شريط العناوين مع الصفحة المعروضة للمستخدم، حتى عبر اتصالات HTTPS الآمنة.
هناك خيار آخر متاح للمطوّرين وهو تضمين محرّك بحث في تطبيقاتهم. وإلى جانب زيادة حجم التطبيق، فإنّ هذه الطريقة هي معقّدة وتستغرق وقتًا طويلاً.
"علامات التبويب المخصصة" كحل للمتصفّحات داخل التطبيق
تم تقديم "علامات التبويب المخصّصة" في Chrome 45 وهي تتيح للمطوّرين استخدام علامة تبويب من المتصفّح التلقائي للمستخدم كجزء من تطبيقاتهم. تم إطلاق "علامات التبويب المخصصة" في الأصل بواسطة Chrome، وبالتالي عُرفت باسم "علامات تبويب Chrome المخصصة". وقد تحوّلت اليوم إلى Android API وتدعم المتصفحات الأكثر شيوعًا علامات التبويب المخصصة، بما في ذلك Chrome وFirefox وEdge وSamsung Internet، لذا من الأنسب أن تطلق عليها اسم "علامات التبويب المخصصة".
تساعد ميزة Custom Tabs مطوّري البرامج على دمج محتوى الويب في تجربة تطبيقاتهم بسلاسة. تسمح هذه الميزات أيضًا للمطوّرين بتخصيص النشاط الذي يتم فيه عرض محتوى الويب، وذلك من خلال السماح لهم بتخصيص لون شريط الأدوات وأزرار الإجراءات والانتقالات المتحركة والمزيد.
كما أنها توفر ميزات لم تكن متاحة من قبل عند استخدام WebView أو تضمين محرك متصفح. نظرًا لأن المتصفح داخل التطبيق يتم تشغيله بواسطة متصفح المستخدم، تشارك "علامات التبويب المخصصة" مساحة التخزين مع المتصفح، بحيث لا يحتاج المستخدمون إلى إعادة تسجيل الدخول إلى مواقعهم الإلكترونية المفضلة في كل مرة يبدأ فيها أحد التطبيقات المثبَّتة جلسة تصفُّح داخل التطبيق.
على عكس WebView، تتوافق "علامات التبويب المخصّصة" مع جميع ميزات النظام الأساسي للويب وواجهات برمجة التطبيقات المتوافقة مع المتصفّح الذي يشغلها.
فتح تطبيقات الويب التقدّمية باستخدام نشاط موثوق به على الويب
تجلب تطبيقات الويب التقدّمية العديد من السلوكيات والإمكانات التي لم تكن متاحة إلا للتطبيقات الخاصة بالنظام الأساسي على الويب. مع طرح سلوك يشبه التطبيقات، تزايدت رغبة المطوّرين في إعادة استخدام تلك التجارب على Android، وبدأ المطوّرون في طلب طرق لدمج تطبيقات الويب التقدّمية (PWA) في تطبيقاتهم.
تتوافق "علامات التبويب المخصَّصة" مع جميع إمكانات الويب وواجهات برمجة التطبيقات الحديثة، ولكن نظرًا لتصميمها في المقام الأول لفتح محتوى تابع لجهة خارجية، فإنّها تحتوي على شريط أدوات في الأعلى يوضّح للمستخدمين عنوان URL الذي يزورونه، فضلاً عن رمز القفل الذي يشير إلى ما إذا كان الموقع الإلكتروني آمنًا أم لا. عند فتح التجربة الخاصة بتطبيق ما، يمنع شريط الأدوات التطبيق من الشعور وكأنه يتكامل مع نظام التشغيل.
تم طرح أنشطة الويب الموثوق بها في الإصدار 72 من Chrome وهي تتيح للمطوّرين استخدام تطبيق الويب التقدّمي (PWA) داخل تطبيق Android. إنّ البروتوكول الخاص به يشبه بروتوكول "علامات التبويب المخصَّصة"، ولكنّه يوفّر واجهات برمجة التطبيقات التي تتيح للمطوّرين (من خلال روابط مواد العرض الرقمية) التحقّق (من خلال روابط مواد العرض الرقمية) من إمكانية التحكّم في كلّ من تطبيق Android وعنوان URL الذي يتم فتحه وإزالة شريط عناوين URL عندما يكون كلاهما صحيحَين.
وفّرت الشركة أيضًا واجهات برمجة تطبيقات لإنشاء شاشات بداية عند فتح تطبيق الويب التقدّمي (PWA) أو تفويض إشعارات الويب ليتم التعامل معها باستخدام رمز Android. ستتوفّر قريبًا ميزات إضافية، مثل خدمة "الفوترة في Play".
نظرًا لأنّه يُتوقع أن تكون عناوين URL المفتوحة في أنشطة الويب الموثوق بها تطبيقات PWA وأن تتضمّن مجموعة من السلوكيات وخصائص الأداء، تقدّم أنشطة الويب الموثوق بها معايير جودة لتطبيقات الويب التقدّمية (PWA) التي يتم فتحها داخلها.
قيود الحلول الحالية
أوضحت ملاحظات المطوّرين أنّ هناك حاجة إلى توافُق علامات التبويب المخصَّصة مع مرونة WebView ليتمكّنوا، على سبيل المثال، من الوصول إلى DOM أو إدخال JavaScript في المتصفّحات داخل التطبيق.
"علامات التبويب المخصصة" هي علامة تبويب يعرضها متصفح المستخدم بواجهة مستخدم مخصصة أو بدون واجهة مستخدم على الإطلاق. وهذا يعني أنّ المتصفّح يحتاج إلى مراعاة توقّعات المستخدمين بشأن الخصوصية والأمان في المتصفّح، ما يجعل بعض هذه الميزات مستحيلة.
يبحث فريق الويب على Android في Google عن بدائل ويجرب حلولاً لحل حالات الاستخدام هذه. يُرجى متابعتنا لمعرفة المزيد.
ملخّص
يكون WebView مفيدًا عندما يحتاج التطبيق إلى HTML وCSS وJavaScript داخل تطبيق Android الخاص به، ولكنه لا يستخدم المزيد من الميزات والإمكانات المتقدمة المتاحة على شبكة الويب الحديثة مثل "الإشعارات الفورية" و"بلوتوث الويب" وغير ذلك. لا يوصى به عند فتح المحتوى الذي تم تصميمه لنظام الويب الحديث، لأنه قد لا يتم عرضه بالطريقة التي قصدها المطور. لا يُنصح باستخدام مكوّن WebView لإنشاء متصفّحات داخل التطبيق. ومن ناحية أخرى، فإن عرض محتوى الويب للطرف الأول هو مجال تتألق فيه مكوّنات WebView.
يجب استخدام النشاط الموثوق به على الويب عندما يريد المطوّرون عرض تطبيق الويب التقدّمي الخاص بهم في وضع ملء الشاشة داخل تطبيق Android. يمكن استخدامه باعتباره النشاط الوحيد في التطبيق أو استخدامه مع أنشطة Android الأخرى.
"علامات التبويب المخصَّصة" هي الطريقة الموصى بها لفتح المحتوى التابع لجهة خارجية والذي تمّ تصميمه لنظام التشغيل الأساسي على الويب، والمعروف أيضًا باسم المتصفِّحات داخل التطبيق.