Trusted Web Application

 

Trusted Web Activity راه حل جدیدی است که برای باز‌کردن محتوای web-app در برنامه‌‌هایی مانند Progressive Web App یا PWA به کار می‌رود و از یک پروتکل مبتنی بر Custom Tabs استفاده می‌کند. نسخه‌ی ۷۲ به بعد گوگل کروم اندروید از TWA پشتیبانی می‌کند.
TWA یک مرورگر کروم تمام‌صفحه در برنامه‌ی اندرویدی شما نمایش می‌‌دهد و امکان استفاده از تمامی قابلیت‌ها و امکانات مرورگر را در اختیارتان قرار می‌دهد.

محتوایی که در برنامه TWA ارائه می‌شود، مورد اعتماد است و این اطمینان وجود دارد که توسعه‌دهنده‌ی وب و برنامه یکسان است. این مسئله با Digital Asset Links اعتبارسنجی می‌شود. برای اطلاعات بیشتر می‌توانید به این لینک مراجعه کنید.

زمان بارگذاری بسته به صورت web view در بازار، یکسان‌بودن توسعه‌دهنده‌ی وبسایت و برنامه به‌طور خودکار اعتبارسنجی می‌شود. توجه داشته باشید که در برنامه‌ی TWA بارگذاری‌شده، مانند سایر برنامه‌ها، باید قوانین انتشار بازار رعایت شده باشد. 

 اعتبار‌سنجی اپلیکیشن‌های TWA در بازار، طبق مراحل زیر انجام می‌شود:

۱. برنامه را بر‌اساس مراحل این لینک تولید کنید.

نکته: می‌توانید از این ابزار آنلاین برای تبدیل PWA به TWA استفاده کنید.

۲. در مانیفست تولید‌شده برای اپلیکیشن، تگ زیر باید وجود داشته باشد و مقدار آن باید host میزبان اپلیکیشن باشد:

 <meta-data android:name="android.support.customtabs.trusted.DEFAULT_URL" android:value=<HOST URL>/>

۳. برای شناسایی و اعتبار‌سنجی اپلیکیشن‌های TWA، فایل assetlinks.json باید در مسیر زیر قرار بگیرد:

<HOST URL>/.well-known/assetlinks.json

۴. ساختار فایل assetlinks.json باید به صورت زیر باشد:

[{

  "relation": ["delegate_permission/common.handle_all_urls"],

  "target": {

    "namespace": "android_app",

    "Package_name": <PACKAGE NAME>,

    "sha256_cert_fingerprints": [SHA_1, SHA_2, ... ]

  }

}]

برای اینکه برنامه‌ توسط بازار اعتبارسنجی شود، به فایل بالا relation زیر را اضافه کنید:

{

    "relation": [

      "check_validation"

    ],

    "target": {

      "namespace": "cafebazaar_twa",

      "package_name": <PACKAGE_NAME>

    }

  }

با اضافه‌کردن این relation، فرمت فایل assetlinks.json به صورت زیر خواهد بود:

[{

  "relation": ["delegate_permission/common.handle_all_urls"],

  "target": {

    "namespace": "android_app",

    "Package_name": <PACKAGE NAME>,

    "sha256_cert_fingerprints": [SHA_1, SHA_2, ... ]

  }

},

{

    "relation": [

      "check_validation"

    ],

    "target": {

      "namespace": "cafebazaar_twa",

      "package_name": <PACKAGE_NAME>

    }

  }]