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

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

استخدام المشغّل المخصّص

عند استخدام رمز مخصص لتشغيل نشاط ويب موثوق به، يمكن إضافة مصادر إضافية من خلال استدعاء 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's Asset Link الرائعة التي تساعد في تصحيح أخطاء "روابط مواد العرض الرقمية" على التطبيقات المثبَّتة على الجهاز.