فعالیت های وب مورد اعتماد چند منبع، فعالیت های وب مورد اعتماد چند منبع

Trusted Web Activities راه جدیدی برای ادغام محتوای برنامه وب شما مانند 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

از آنجایی که هر دامنه به یک برنامه اندروید متصل می‌شود، فایل‌های 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، اظهارنامه 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's Asset Link Tool وجود دارد که به اشکال زدایی پیوندهای دارایی دیجیتال در برنامه‌های نصب شده روی دستگاه کمک می‌کند.