多來源受信任網路活動

受信任的網路活動是將 PWA 等網頁應用程式內容與 使用以「自訂分頁」為基礎的通訊協定來開發 Android 應用程式。

來源瀏覽

「受信任的網路活動」需要開啟來源以使用 Digital Asset Links,用於以全螢幕顯示內容。

當使用者離開已驗證的來源時,畫面會顯示「Custom Tab UI」。自訂版面中的網址列 這個分頁會顯示使用者目前正前往應用程式外的網域,以及 提供 X 按鈕,讓使用者可以快速回到已驗證的來源。

不過,網頁應用程式也常會建立橫跨多個來源的使用體驗,例如 應是購買應用程式,主要服務位於 www.example.com,而結帳 流量託管於 checkout.example.com

這時您不希望顯示自訂分頁,不僅是因為使用者目前在 也是因為頂端列可能會讓使用者誤以為已離開應用程式 並放棄結帳

「Trusted Web Activities」可讓開發人員驗證多個來源,而使用者會持續留在 全螢幕畫面。和主網域一樣,開發人員必須是 能夠控管每個經過驗證的來源

設定多個來源的驗證作業

與主要來源相同,驗證程序是透過 Digital Asset Links 通過,每個網域 通過驗證後,必須有專屬的 assetlinks.json 檔案

www.example.comcheckout.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

android-browser-helper 支援資料庫中的 LauncherActivity 可讓您藉由設定 Android 專案,新增多個要驗證的來源。

首先,在 res/values/strings.xml 檔案中加入 string-array 元素。每個額外的網址 會位於 item 子元素中:

...
<string-array name="additional_trusted_origins">
    <item>https://www.google.com</item>
</string-array>
...

接著,在參照meta-data AndroidManifest.xml 中的 LauncherActivity

...
<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

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 提供了多來源受信任網路活動的範例應用程式。廠牌 務必自行檢查。

疑難排解

設定 Digital Asset Links 的過程中有一些變動。如果應用程式仍顯示 自訂分頁列的頂端,可能是設定有誤。

「信任的網路活動」快速入門指南提供實用的疑難排解章節,說明如何 針對 Digital Asset Link 問題進行偵錯。

此外,還有很棒的 Peter 的資產連結工具,可協助偵錯 Digital Asset Links 安裝在裝置上安裝的應用程式