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

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

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

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

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

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