أنشطة الويب الموثوق بها المتعددة المصادر

أنشطة الويب الموثوق بها هي طريقة جديدة لدمج محتوى تطبيق الويب مثل تطبيق الويب التقدّمي (PWA) مع تطبيق Android باستخدام بروتوكول يستند إلى علامات التبويب المخصصة.

التنقّل باستخدام المصدر ff

يحتاج نشاط الويب الموثوق به إلى أن يتم التحقق من المصادر التي يتم فتحها باستخدام روابط مواد العرض الرقمية، بهدف عرض المحتوى بملء الشاشة.

عندما ينتقل مستخدم خارج المصدر الذي تم التحقّق منه، يتم عرض واجهة مستخدم علامة تبويب مخصَّصة. شريط عنوان URL في قسم مخصص تخبر مفتاح التبويب (Tab) المستخدمين الذين ينتقلون الآن في نطاق خارج التطبيق، أثناء توفير زر X للمستخدم الذي يتيح له العودة بسرعة إلى المصدر الذي تم التحقّق منه.

ولكن من الشائع أيضًا أن تنشئ تطبيقات الويب تجارب تمتد من أصول متعددة - مثال سيكون تطبيق تسوق يضم التجربة الرئيسية على الموقع الإلكتروني www.example.com، في حين أن عملية الدفع على checkout.example.com.

وفي مثل هذه الحالات، يكون من غير المستحسن عرض علامات التبويب المخصصة، ليس فقط لأن المستخدم ولكن أيضًا لأن الشريط العلوي قد يجعل المستخدم يعتقد أنه ترك التطبيق وتجاهل عملية الدفع.

تتيح "أنشطة الويب الموثوق بها" للمطوّرين التحقّق من صحة مصادر متعددة، وسيظل المستخدم ملء الشاشة عند التنقّل بين هذه المصادر وكما هو الحال مع النطاق الرئيسي، يجب أن يكون مطور البرامج قادرًا على التحكم في كل أصل تم التحقق من صحته.

إعداد عملية التحقّق من المصادر المتعددة

وكما هي الحال في الأساس، يتم التحقق من الصحة من خلال روابط مواد العرض الرقمية، ويجب أن يكون كل نطاق بعد التحقق من صحته يجب أن يكون له ملف assetlinks.json الخاص به.

في المثال الذي ذكرناه بخصوص www.example.com وcheckout.example.com، سيكون الناتج:

  • https://www.example.com/.well-known/assetlinks.json
  • https://checkout.example.com/.well-known/assetlinks.json

نظرًا لأنه يتم ربط كل نطاق بتطبيق Android نفسه، يتم تخزين ملفات assetlinks.json تبدو متشابهة تمامًا.

بافتراض أن اسم حزمة تطبيق Android هو com.example.twa، سيكون كلاهما assetlink.json على شيء مشابه لما يلي:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
  "namespace": "android_app",
  "package_name": "com.example",
   "sha256_cert_fingerprints": ["..."]}
}]

إضافة أصول متعددة إلى تطبيق Android

في تطبيق Android، يجب تعديل بيان asset_statements ليتضمن جميع المصادر التي يجب التحقّق منها:

<string name="asset_statements">
[{
    \"relation\": [\"delegate_permission/common.handle_all_urls\"],
    \"target\": {
        \"namespace\": \"web\",
        \"site\": \"https://www.example.com\"
    }
}],
[{
    \"relation\": [\"delegate_permission/common.handle_all_urls\"],
    \"target\": {
        \"namespace\": \"web\",
        \"site\": \"https://checkout.example.com\"
    }
}],
</string>

إضافة مصادر أخرى إلى LauncherActivity

استخدام LauncherActivity التلقائي

LauncherActivity الذي هو جزء من مكتبة دعم android-browser-helper توفّر طريقة لإضافة مصادر متعدّدة ليتم التحقّق منها من خلال ضبط مشروع Android.

أولاً، أضِف عنصر string-array إلى ملف res/values/strings.xml. يتم تضمين كل عنوان URL إضافي التي تم التحقق من صحتها ضمن عنصر item الفرعي:

...
<string-array name="additional_trusted_origins">
    <item>https://www.google.com</item>
</string-array>
...

بعد ذلك، أضِف علامة meta-data جديدة داخل عنصر النشاط الحالي الذي يشير إلى LauncherActivity، داخل AndroidManifest.xml:

...
<activity android:name="com.google.androidbrowserhelper.trusted.LauncherActivity"
    android:label="@string/app_name">


    <meta-data
        android:name="android.support.customtabs.trusted.ADDITIONAL_TRUSTED_ORIGINS"
        android:resource="@array/additional_trusted_origins" />


    ...
</activity>
...

استخدام LauncherActivity مخصّص

عند استخدام رمز مخصّص لبدء نشاط موثوق به على الويب، يمكن إضافة مصادر إضافية من خلال طلب setAdditionalTrustedOrigins عند إنشاء Intent لإطلاق "النشاط الموثوق به على الويب":

public void launcherWithMultipleOrigins(View view) {
  List<String> origins = Arrays.asList(
      "https://checkout.example.com/"
  );


  TrustedWebActivityIntentBuilder builder = new TrustedWebActivityIntentBuilder(LAUNCH_URI)
      .setAdditionalTrustedOrigins(origins);


  new TwaLauncher(this).launch(builder, null, null);
}

الخاتمة

باستخدام هذه الخطوات، يصبح "النشاط الموثوق به على الويب" جاهزًا الآن لدعم الأصول المتعدّدة. يحتوي android-browser-helper على نموذج تطبيق لأنشطة الويب الموثوق بها متعددة المصادر. الماركة تأكد من التحقق منه.

تحديد المشاكل وحلّها

ثمة بعض العناصر المتغيرة في عملية إعداد ميزة "روابط مواد العرض الرقمية". إذا كان التطبيق لا يزال يعرض شريط علامات التبويب المخصصة بالأعلى، يُحتمل أن يكون هناك خطأ في التهيئة.

يتضمن دليل البدء السريع لنشاط الويب الموثوق به قسمًا رائعًا لتحديد المشاكل وحلّها حول كيفية وتصحيح الأخطاء في روابط مواد العرض الرقمية.

هناك أيضًا أداة رابط مواد العرض من Peter الرائعة التي تساعد في تصحيح أخطاء روابط مواد العرض الرقمية. على التطبيقات المثبتة على الجهاز.