هناك العديد من الأسباب التي تدفع المطوّرين إلى نقل الويب إلى Android، مثل إعادة استخدام تطبيق مصغّر على الويب في تطبيق Android، أو دمج محتوى تابع لجهة أولى أو تابعة لجهة خارجية، أو حتى نقل تطبيق الويب بالكامل إلى النظام الأساسي. مهما كانت حالة الاستخدام، يقدّم Android العديد من الأدوات لتنفيذها.
وفي ما يلي آخر التحديثات التي أُجريت على هذه الأدوات. على سبيل المثال:
- تحسينات على الخصوصية وتوفير دعم أفضل للشاشات الكبيرة، مثل دعم سحب الصور وإفلاتها في WebView
- تتيح علامات التبويب المخصّصة الآن استخدام علامات تبويب مخصّصة جزئية.
- ميزات مدمجة لتطبيقات الويب التقدّمية، مثل واجهة المستخدم Richer Install UI وواجهة برمجة التطبيقات Play billing API في الأنشطة الموثوق بها على الويب
لنطّلِع على مزيد من المعلومات.
WebView
وتعدّ WebView الطريقة الأكثر استخدامًا لتضمين محتوى الويب في تطبيقات Android، لأنّ الغالبية العظمى من تطبيقات Android تستخدِم WebView. وهي طريقة رائعة لدمج واجهة مستخدم الويب بسلاسة في تجارب تطبيقات Android الأصلية. على سبيل المثال، يمكنك تضمين واجهة مستخدم مختلفة للويب في تطبيقك، مثل الإعلانات أو التطبيقات المصغّرة أو حتى المتصفّحات داخل التطبيق. من أهم نقاط قوة WebView هي واجهة برمجة التطبيقات القوية للتحكّم في محتوى الويب الذي يتم تحميله وتعديله. ما هي الميزات الجديدة في WebView؟
عنوان X-Requested-With
لنبدأ بالخصوصية وإيقاف رأس X-Requested-With نهائيًا. عندما يُثبِّت المستخدم تطبيقًا يستخدم WebView لتضمين محتوى الويب ويشغّله، ستضيف WebView رأس X-Requested-With إلى كل طلب يتم إرساله إلى الخوادم. وتكون قيمة هذا الرأس هي اسم حزمة APK الخاصة بالتطبيق. وهذا يعني أنّ كل طلب يتضمّن معلومات محدّدة عن السياق الذي يستخدِم فيه المستخدم محتوى الويب، ويؤدي إلى تسريب هوية التطبيق إلى الخدمة على الإنترنت. لحماية خصوصية المستخدم، بدأ فريق WebView تجربة إيقاف نهائي تزيل هذا العنوان من جميع طلبات WebView.
ماذا لو كان تطبيقك يعتمد على العنوان X-Requested-With؟ الطريقة التي ننصح بها هي استخدام واجهة برمجة التطبيقات الجديدة للموافقة التي تتيح لك إرسال عنوان الطلب بشكل انتقائي إلى مصادر معيّنة. ويعني ذلك أنّك تحصل على أفضل ما في الحالتَين: يمكنك مواصلة توفير الميزات الحالية التي تم إنشاؤها استنادًا إلى هذا العنوان، مع التأكّد من الحفاظ على خصوصية المستخدم في جميع الحالات الأخرى. إذا أردت الاحتفاظ بالسلوك الحالي، يمكنك أيضًا الاشتراك في الفترة التجريبية لميزة X-Requested-With Deprecation.
WebSettingsCompat.setRequestedWithHeaderOriginAllowList(
demoWebview.getSettings(), Collections.singleton("https://example.com")
);
اختبار WebView
الموضوع التالي هو الاختبار. إذا كنت مطوّر ويب وكانت مواقعك الإلكترونية تتلقّى عددًا كبيرًا من الزيارات من WebViews، إليك خبران:
تتيح WebView الآن الإصدارات التجريبية من Chrome. تتيح لك مراحل التجربة والتقييم استخدام ميزات جديدة أو تجريبية في Chrome. يمكنك استخدام هذه الإصدارات لتجربة ميزة جديدة قبل توفّرها للجميع. حتى الآن، كانت مراحل التجربة والتقييم متاحة فقط على متصفّح Chrome لأجهزة الكمبيوتر المكتبي والأجهزة الجوّالة، ولكن اعتبارًا من الإصدار M110 من Chrome، أصبحت مراحل التجربة والتقييم متاحة أيضًا في WebView.
أصبح الآن من الأسهل تثبيت الإصدار التجريبي من WebView. ننصحك بشدة باختبار موقعك الإلكتروني باستخدام قناة WebView التجريبية للتأكّد من أنّ موقعك الإلكتروني يعمل بشكل جيد في الإصدارات القادمة من WebView. لإجراء ذلك، عليك الانضمام إلى برنامج الاستخدام التجريبي لواجهة WebView في "متجر Google Play"، وسيتم تسجيل جهازك تلقائيًا.
إتاحة استخدام الأجهزة المزوّدة بشاشة كبيرة
هدفنا هو جعل WebView يعمل بشكل جيد على الأجهزة ذات الشاشات الكبيرة. ومن الخطوات التي تم اتّخاذها في هذا الاتجاه أنّ WebView يتيح الآن سحب الصور وإفلاتها. على سبيل المثال، في وضع "عرض تقسيم الشاشة"، يمكنك سحب صورة من WebView إلى تطبيق مختلف.
من السهل جدًا إضافة السحب والإفلات إلى مكوّنات WebView: ما عليك سوى تعريف DropDataProvider في AndroidManifest.
<application...>
...
<provider
android:authorities="com.example.webviewdemo.DropDataProvider"
android:name="androidx.webkit.DropDataContentProvider"
android:exported="false"
android:grantUriPermissions="true"/>
</application>
بالنسبة إلى الأجهزة ذات الشاشات الكبيرة، سيتوفّر في Chrome وWebView على نظام التشغيل Android U دعم كامل للكتابة اليدوية في حقول إدخال نص HTML، بالإضافة إلى إيماءات الإدخال لحذف النص أو إضافة مسافات. تتوفّر ميزة الكتابة اليدوية حاليًا لجميع أجهزة Samsung التي تعمل بنظام التشغيل One UI 5.1، مثل S23 Ultra. بالنسبة إلى الأجهزة الأخرى التي تعمل بنظام التشغيل Android T، يمكنك تفعيل الكتابة اليدوية في مدخلات HTML ضمن "خيارات المطوّر".
محرك JavaScript في Jetpack
قد تحتاج أحيانًا إلى تشغيل JavaScript في تطبيقك بدون الحاجة إلى عرض أي محتوى ويب، على سبيل المثال، عند مشاركة منطق النشاط التجاري على تطبيقات الويب والتطبيقات المتوافقة مع الأجهزة الجوّالة. لتسهيل ذلك، أطلقنا الإصدار التجريبي من محرّك JavaScript الجديد في JetPack العام الماضي. تستخدِم هذه المكتبة محرك JavaScript في Chrome (V8)، وتسمح لتطبيقك بتقييم رمز JavaScript أو WebAssembly بدون إنشاء مثيل WebView. الأمر الجيد في محرّك JavaScript الجديد هو أنّه ينفِّذ JavaScript في عملية مختلفة، ما يجعله طريقة آمنة وثابتة لتشغيل JavaScript في تطبيقك. كما أنّه يتطلب موارد أقل من مثيل WebView.
ListenableFuture<JavaScriptSandbox> jsSandboxFuture =
JavaScriptSandbox.createConnectedInstanceAsync(JavaScriptEngineActivity.this);
JavaScriptIsolate jsIsolate = jsSandboxFuture.get().createIsolate();
final String code =
"function sum(a, b) { let r = a + b; return r.toString(); }; sum(3, 4)";
ListenableFuture<String> resultFuture = jsIsolate.evaluateJavaScriptAsync(code);
…
علامات التبويب المخصصة
إنّ WebView مفيد لدمج واجهة مستخدم الويب في تطبيقك، ولكن ماذا عن السماح للمستخدمين بتصفّح محتوى الويب في تطبيقك؟
هذه حالة استخدام رائعة لاستخدام علامات التبويب المخصّصة. وتعدّ هذه الطريقة آمنة وسهلة الاستخدام للسماح للمستخدمين بعرض محتوى الويب في تطبيقك، كما أنّ ميزة هذه الطريقة هي أنّ المستخدمين لا يحتاجون إلى إعادة تسجيل الدخول إلى مواقعهم الإلكترونية المفضّلة. ويعود السبب في ذلك إلى أنّها مثيل للمتصفح التلقائي للمستخدم وملفات تعريف الارتباط التي تتم مشاركتها، كما أنّها تقدّم جميع ميزات منصة الويب وواجهات برمجة التطبيقات المتوافقة مع المتصفّح الذي يشغّلها.
ويعني ذلك أيضًا أنّه إذا كان المتصفّح التلقائي هو Chrome، سيتم فتح علامة تبويب مخصّصة في Chrome. وإذا كان المتصفّح التلقائي هو Firefox، سيتم فتح علامة تبويب مخصّصة في Firefox. تتوافق معظم المتصفحات الرئيسية على Android مع ميزة "علامات التبويب المخصّصة" (Custom Tabs) وإذا كان المتصفّح التلقائي لا يتيح استخدام علامات التبويب المخصّصة، سيتم فتح تطبيق المتصفّح بدلاً من ذلك.
إن اللافت في علامات التبويب المخصصة هو إمكانية تنسيقها لتلائم شكل ومضمون تطبيقك، وإضافة تفاعل مخصص من خلال الإجراءات، وأشرطة الأدوات الخاصة بك.
علامات التبويب المخصّصة الجزئية
تم إجراء ترقية كبيرة على تخصيصات علامة التبويب المخصّصة من خلال إتاحة علامات التبويب المخصّصة الجزئية. تسمح للمستخدمين بتنفيذ مهام متعددة بين التطبيقات والويب. حتى الآن، عند استخدام ميزة "علامات التبويب المخصّصة"، كان يغطّي العنصر المتراكب لعلامة التبويب في المتصفّح الشاشة بأكملها. يمكنك الآن التحكّم في ارتفاع التراكب الخاص بعلامة التبويب المخصّصة. بهذه الطريقة، يمكن للمستخدمين التفاعل مع تطبيقك ومحتوى موقعك الإلكتروني في الوقت نفسه. إذا كان متصفّح المستخدم لا يتيح استخدام ميزة "علامات التبويب المخصّصة جزئيًا"، ستظهر للمستخدم ببساطة علامة التبويب المخصّصة المتوافقة التي تعمل على ملء الشاشة.
ما عليك سوى الاتصال بخدمة علامات التبويب المخصّصة ونقل الجلسة إلى CustomTabsBuilder ثمّ استدعاء setActivityHeight.
CustomTabsSession customTabsSession;
// ...
CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder(customTabsSession)
.setInitialActivityHeightPx(500)
.setCloseButtonPosition(CustomTabsIntent.CLOSE_BUTTON_POSITION_END)
// ...
.build();
customTabsIntent.launchUrl(context, Uri.parse(url))
أطلقت منصة YouTube علامات تبويب مخصّصة مضمّنة قابلة للتغيير في الحجم على إعلانات الاستجابة المباشرة. وبهذه الطريقة، تمكّنت الشركة من تنفيذ طريقة جديدة للتفاعل مع الإعلانات ومحتوى الويب بدون مقاطعة تجربة نتائج البحث المجانية على التطبيق.
ماذا عن الأجهزة اللوحية والأجهزة الأخرى المزوّدة بشاشات كبيرة؟ يعمل فريق Chrome حاليًا على توفير تجربة جديدة لعلامات التبويب المخصّصة جنبًا إلى جنب للوضع الأفقي للأجهزة ذات الشاشات الكبيرة. من خلال تحديد الحد الأقصى لعرض علامة التبويب، بالإضافة إلى نقطة توقّف، ستتبدّل تجربة "علامة التبويب المخصّصة" تلقائيًا بين التراكب في اللوحة السفلية والتجربة جنبًا إلى جنب. تتوفّر هذه الميزة حاليًا في الإصدار Canary، وسيتم طرحها في تموز (يوليو) 2023 تقريبًا. إذا أردت تجربتها، يمكنك الاطّلاع على رمز المصدر لتطبيق نموذج علامات التبويب المخصّصة في Chromium.
قياس إشارات التفاعل
التعديل الكبير الثاني على علامات التبويب المخصّصة هو قياس تفاعل المستخدِم الخاص بالجلسة. إذا كان تطبيقك يعرض محتوى للمستخدمين بشكل منتظم يتضمّن روابط، على سبيل المثال، في خلاصة أخبار، ألا يكون من الرائع معرفة الروابط التي يراها المستخدمون مفيدة والروابط التي لا يراها مفيدة؟ يمكن أن تكون هذه المعلومات مفيدة جدًا عند تحديد أولويات الروابط التي تريد عرضها للمستخدمين.
أضاف فريق Chrome إذن الوصول إلى المقاييس المتعلقة بالجلسة إلى علامات تبويب Chrome المخصّصة. بالإضافة إلى مدة بقاء المستخدم في الصفحة، يمكنك الآن أيضًا الحصول على مستوى رؤية للوصول إلى مسافة التمرير واتجاه التمرير ومدى التفاعل العام مع محتوى الويب.
تتوفّر إشارات التفاعل اعتبارًا من الإصدار 114 من Chrome وتتطلّب مكتبة دعم androidx.browser:browser:1.6.0-alpha01
أو إصدارًا أحدث. لمزيد من المعلومات، اطّلِع على دليل البدء بشأن إشارات التفاعل.
PWA
هناك أيضًا تحديثات في تطبيقات الويب التقدّمية، وهي مجموعة من التقنيات التي تُتيح إنشاء تجارب تشبه التطبيقات ويتم إنشاؤها ونشرها على الويب.
باستخدام التطبيقات المصمّمة للأجهزة الجوّالة (PWA) على Android، يمكن تثبيت تطبيق الويب: سيظهر إلى جانب تطبيقات المنصة الأخرى، على الشاشة الرئيسية ومشغّل التطبيقات والإعدادات والمساحات الأخرى.
تم إنشاء ميزات تطبيقات الويب التقدّمية استنادًا إلى معايير الويب، وهي تركّز على التوافق مع جميع الأنظمة الأساسية، ما يمنح المطوّرين أدوات لإنشاء تطبيق ويب مرة واحدة والسماح للمستخدمين بتثبيته على أي جهاز يختارونه. لا يعني إنشاء تطبيق ويب قابل للتثبيت أنّه لا يمكنك أو لا يجب أن يكون لديك تطبيق أصلي لنظام التشغيل Android، ولكنه خيار آخر لتوفير تطبيقات الويب على Android.
لنطّلِع على بعض الميزات التي تجعل تطبيق الويب القابل للتثبيت كما لو كان في نظام Android.
أردنا تمكين المستخدمين من تثبيت المواقع الإلكترونية التي تهمّهم أكثر من غيرها. كانت الخطوة الأولى هي إزالة معالِج جلب الخدمة كشرط للتثبيت على Android وChrome. بالإضافة إلى ذلك، سيتخطّى Chrome بدء الخدمة العاملة إذا كان معالج الجلب فارغًا. سيُجري Chrome تجارب لتوسيع نطاق إمكانية التثبيت للمستخدمين. يُرجى الانتباه إلى هذه الرسائل وتقديم ملاحظاتك.
كان شرط استخدام مهام الخدمة مطلوبًا من المطوّرين لتوفير تجربة مستخدم متّسقة مع تطبيقات Android الأخرى. ويمكن استخدامه لإنشاء صفحة تُعلم المستخدم بأنّه لا يمكنه استخدام التطبيق بلا اتصال بالإنترنت.
وأدركنا أنّه يمكننا تخفيف عبء العمل على المطوّرين، والتأكّد من أنّ هذه التطبيقات تقدّم تجربة تثبيت جيدة منذ البداية. لهذا السبب، أضاف Chrome تجربة تلقائية بلا اتصال بالإنترنت تعرض للمستخدمين شاشة تتضمّن رمز التطبيق، ما يُعلمهم بأنّهم بلا اتصال بالإنترنت، بدون أن يحتاج المطوّرون إلى بذل جهد إضافي.
لا تزال واجهة برمجة تطبيقات مشغّل الخدمات متاحة لإنشاء تجارب مخصّصة بلا اتصال بالإنترنت وتنفيذ ميزات أخرى مثل التخزين المؤقت لتحسين الأداء.
تشمل بعض الميزات الأخرى التي يمكن أن توفّر تجربة تطبيقات ويب مُحسَّنة على Android واجهة مستخدم أكثر تفاعلية للتثبيت. من خلال إضافة الحقلين description
وscreenshots
إلى بيان الويب، سيحصل المستخدمون على تجربة تثبيت أقرب إلى ما تعرضه متاجر التطبيقات لوصف تطبيقك.
لدينا أيضًا اختصارات. من خلال إضافة مصفوفة باسم "shortcuts
" تصف مجموعة من الإجراءات السريعة التي يتّخذها المستخدمون كثيرًا في تطبيقك، سيتمكّنون من الوصول إلى هذه الإجراءات من خلال الضغط مع الاستمرار على رمز التطبيق.
باستخدام واجهات برمجة التطبيقات Web Share وWeb Share Target، يمكن لتطبيقك التفاعل مع التطبيقات الأخرى، مثل أي تطبيق آخر على المنصة. وسيكون تطبيقك خيارًا في جداول المشاركة، ويمكنه مشاركة الصور والنصوص والملفات الأخرى واستلامها.
يمكنك الاطّلاع على محادثة I/O بعنوان "الويب: منصّتك للنمو" للحصول على مزيد من المعلومات عن كيفية الاستفادة من هذه التقنيات في الأنشطة التجارية.
النشاط الموثوق به على الويب
هناك طريقة أخرى لعرض محتوى الويب على Android وهي استخدام النشاط الموثوق به على الويب (TWA).
إنّ TWA هي أفضل طريقة لعرض محتوى الويب التابع لجهة خارجية بملء الشاشة في تطبيقك. وهي الحلّ المثالي للمطوّرين الذين يريدون تحويل تطبيق الويب إلى تطبيق Android أو استخدام موقعهم الإلكتروني كجزء من تطبيق.
يُرجى العِلم أنّ TWA يبدو مرتبطًا بشكلٍ صارم بتطبيقات الويب التقدّمية، ولكنّه ليس كذلك. نعم، باستخدام حزمة TWA، يمكنك نشر تطبيق الويب القابل للتثبيت على Google Play، ولكن يمكنك أيضًا إنشاء نشاط واحد على الويب وإدراجه في تطبيق Android.
يعرض متصفّح المستخدم "نشاط الويب الموثوق به" بالطريقة نفسها تمامًا التي يظهر بها للمستخدم في المتصفّح، باستثناء أنّه يتم تشغيله في وضع ملء الشاشة ولا يعرض شريط عنوان URL. وهذا يعني أنّها تتوافق مع جميع ميزات منصة الويب وواجهات برمجة التطبيقات المتوافقة مع المتصفّح الذي يشغّلها.
في ما يلي بعض مزايا إنشاء تطبيق الويب باستخدام TWA:
النشر على Google Play، ما يتيح لتطبيقك الوصول إلى ميزتَي الظهور والتوزيع على Google Play إمكانية الوصول إلى واجهة برمجة التطبيقات Play Billing API، التي تتيح للمطوّرين إدارة مبيعات السلع الرقمية في تطبيقاتهم، ما يسهّل إعداد المنتجات والمبيعات والاشتراكات وغير ذلك تفويض الإشعارات وأذونات رصد الموقع الجغرافي لتطبيق Android بدلاً من الموقع الإلكتروني
اطّلِع على هذه المقالة لمعرفة المزيد من المعلومات عن كيفية استخدام ContactsDirect لخدمة TWA لاستفادة المستخدمين منها ومضاعفة معدّلات الإحالات الناجحة.
الخاتمة
كما رأيت، هناك العديد من الخيارات المختلفة المتاحة لتضمين محتوى الويب في تطبيقك، ويتم تحسين كل هذه الخيارات باستمرار.