支援深層連結

自 1.2.0 版起,Navigation 3 支援使用 DeepLinkRequest 和 DeepLinkMatcher 類別,建立應用程式目的地的深層連結。

如要在應用程式中支援深層連結,請完成下列步驟:

  1. 在 AndroidManifest.xml 中定義意圖篩選器,指定應用程式可處理的 URI。
  2. 建立 DeepLinkMatcher 執行個體,將傳入的要求對應至導覽鍵。
  3. 在活動的 onCreate 或 onNewIntent 方法中比對傳入要求,並據此更新返回堆疊。

建立 DeepLinkRequest

DeepLinkRequest 代表傳入的深層連結。其中包含 DeepLinkUri 和選用的 RequestExtras,以及其他資訊,例如意圖動作或 MIME 類型。

提供 DeepLinkRequest 項額外資訊

如要儲存與深層連結相關的其他資訊,請使用 RequestExtras 類別。為了確保定義和例項化額外項目時的類型安全,程式庫提供了 RequestExtrasKey 介面和 requestExtras DSL。

此外,程式庫還提供兩個額外鍵和相關聯的輔助程式:

如要定義自訂額外項目,請使用類型化泛型實作 RequestExtrasKey 介面:

您也可以使用 emptyRequestExtras() 建構空白例項,或使用 + (plus) 和 - (minus) 運算子合併額外項目。

從 Intent 建立 DeepLinkRequest

在 Android 上,您可以直接從 Intent 建立 DeepLinkRequest。如果以這種方式建構,DeepLinkRequest 的建構方式如下:

DeepLinkMatcher 會將傳入的 DeepLinkRequest 執行個體對應至可新增至應用程式返回堆疊的導覽鍵。Navigation 3 提供三個內建比對器:UriDeepLinkMatcher 用於比對模式 URI、StaticKeyDeepLinkMatcher 用於基本連結,以及 BackStackMatcher 用於建構合成返回堆疊。這個程式庫也支援自訂比對器,適用於內建比對器未涵蓋的用途。

詳情請參閱「建立 DeepLinkMatcher」。

新增意圖篩選器

如要啟用深層連結來啟動活動,您必須在應用程式的 AndroidManifest.xml 中定義相符的 <intent-filter> 元素。詳情請參閱「新增連入連結的意圖篩選器」。

比對傳入的要求

建立 DeepLinkMatcher 執行個體後,您可以在活動中比對傳入的要求。

如要比對傳入的要求,請完成下列步驟:

  1. 例項化 DeepLinkMatcher 例項。
  2. 明確或使用多重繫結整理所有 DeepLinkMatcher 執行個體。
  3. 從傳入的 Intent 建立 DeepLinkRequest。
  4. 比對要求與所有比對器,找出最相符的項目。
  5. 從比對結果建立返回堆疊。