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

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

التنقّل في ff-origin

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

عندما ينتقل المستخدم خارج المصدر الذي تم التحقّق منه، يتم عرض واجهة مستخدم علامة التبويب المخصّصة. يُعلم شريط عنوان URL في علامة التبويب "مخصّصة" المستخدمين بأنّهم ينتقلون الآن إلى نطاق خارج التطبيق، كما يقدّم للمستخدم زر 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 على نموذج تطبيق لأنشطة "النشاط الموثوق به على الويب" التي لها مصادر متعددة. يُرجى التحقّق من ذلك.

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

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

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

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