為了獲得Firebase Dynamic Links的
所建立,您必須在應用程式中加入 Dynamic Links SDK,並呼叫
FirebaseDynamicLinks.getDynamicLink()
方法,
即可取得 Dynamic Link 中傳遞的資料。
設定 Firebase 和 Dynamic Links SDK
如果還沒試過 將 Firebase 新增至您的 Android 專案。
註冊應用程式時,請指定 SHA-1 簽署金鑰。如果您使用 應用程式連結,也會指定 SHA-256 金鑰。
-
在模組 (應用程式層級) Gradle 檔案中 (通常為
<project>/<app-module>/build.gradle.kts
或<project>/<app-module>/build.gradle
)、 新增 Android Dynamic Links 程式庫的依附元件。建議您使用 Firebase Android BoM敬上 管理程式庫版本管理為透過 Dynamic Links 獲得最佳體驗,建議你 正在啟用 Google Analytics ,然後將 Google Analytics 專用 Firebase SDK 加進應用程式。
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.2.0")) // Add the dependencies for the Dynamic Links and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links' implementation 'com.google.firebase:firebase-analytics' }
只要使用 Firebase Android BoM, 應用程式一律會使用相容的 Firebase Android 程式庫版本。
(替代做法) 新增 Firebase 程式庫依附元件,「不使用」 BoM
如果選擇不使用 Firebase BoM,請指定各個 Firebase 程式庫版本 都屬於依附元件行
請注意,如果您在應用程式中使用多個 Firebase 程式庫,強烈建議您 建議使用 BoM 管理程式庫版本,確保所有版本 相容。
敬上dependencies { // Add the dependencies for the Dynamic Links and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links:22.1.0' implementation 'com.google.firebase:firebase-analytics:22.1.0' }
- 在 Firebase 控制台中開啟 Dynamic Links。 專區。如果系統提示您接受服務條款,請接受《服務條款》。
為深層連結新增意圖篩選器
與 一樣
純深層連結,您必須在要處理的活動中新增意圖篩選器
導入應用程式的深層連結意圖篩選器應擷取網域的深層連結。
如果已安裝應用程式,Dynamic Link 會重新導向至你的網域。這樣您的應用程式才能
Dynamic Link從 Play 商店安裝/更新資料,並輕觸一下
「繼續」按鈕。在 AndroidManifest.xml
中:
<intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="example.com" android:scheme="https"/> </intent-filter>
當使用者開啟 Dynamic Link 並連至您指定的配置和主機時,應用程式會執行以下動作 使用此意圖篩選器啟動活動來處理連結。
處理深層連結
如要接收深層連結,請呼叫 getDynamicLink()
方法:
Kotlin+KTX
Firebase.dynamicLinks .getDynamicLink(intent) .addOnSuccessListener(this) { pendingDynamicLinkData: PendingDynamicLinkData? -> // Get deep link from result (may be null if no link is found) var deepLink: Uri? = null if (pendingDynamicLinkData != null) { deepLink = pendingDynamicLinkData.link } // Handle the deep link. For example, open the linked // content, or apply promotional credit to the user's // account. // ... } .addOnFailureListener(this) { e -> Log.w(TAG, "getDynamicLink:onFailure", e) }
Java
FirebaseDynamicLinks.getInstance() .getDynamicLink(getIntent()) .addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() { @Override public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) { // Get deep link from result (may be null if no link is found) Uri deepLink = null; if (pendingDynamicLinkData != null) { deepLink = pendingDynamicLinkData.getLink(); } // Handle the deep link. For example, open the linked // content, or apply promotional credit to the user's // account. // ... // ... } }) .addOnFailureListener(this, new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "getDynamicLink:onFailure", e); } });
您必須在每次可能出現的活動中呼叫 getDynamicLink()
可能會透過連結啟動
使用 getIntent().getData()
。正在撥打 getDynamicLink()
擷取連結並清除資料,讓伺服器只處理一次
應用程式。
您通常也在主要活動中呼叫 getDynamicLink()
視為符合該連結的意圖篩選器啟動的任何活動。
記錄分析
Google Analytics 中可以自動追蹤下列事件,並顯示在 Firebase 控制台。
dynamic_link_app_open
dynamic_link_first_open
dynamic_link_app_update
如要登錄這些事件,請先設定「Google Analytics」 擷取深層連結請確認符合下列條件:
- 在應用程式進入點呼叫
FirebaseDynamicLinks.getDynamicLink()
: - 啟動器活動。e.g.:
action="android.intent.action.MAIN"
,category="android.intent.category.LAUNCHER"
。 - 活動進入點。e.g.:
onStart()
,onCreate()
。 - 深層連結活動。
- 設定並使用 Google Analytics:
- 加入 Google Analytics 依附元件。這通常是由
google-services
Gradle 外掛程式。 - 加入
google-services.json
設定檔。 - 請先撥打
FirebaseAnalytics.getInstance()
再撥打電話FirebaseDynamicLinks.getDynamicLink()
。
使用應用程式連結處理 Dynamic Links
在 Android 6.0 (API 級別 23) 以上版本中,您可以將應用程式設為處理 Dynamic Links 使用 Cloud 控制台 Android 應用程式連結。
確認您已在專案中新增應用程式的 SHA256 憑證指紋: Firebase 控制台。Dynamic Links 會代為設定應用程式連結網站關聯 您的 Dynamic Links 網域。
將自動驗證的意圖篩選器加入處理 Dynamic Link 的活動,設定
託管於專案的 Dynamic Links 網域。
可在 Firebase 控制台中找到。於
AndroidManifest.xml
:
<intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="example.com/link" android:scheme="http"/> <data android:host="example.com/link" android:scheme="https"/> </intent-filter>
請注意,android:host
必須設為您的 Dynamic Links 網域,而非網域
整理出一個重點
資訊清單中的全部 autoVerify
個意圖篩選器都必須註冊,才能順利安裝應用程式
互動連結。Firebase 會自動為你的 Dynamic Links 網域處理這項工作,但你可以自行檢查
方法是開啟在您 Dynamic Links 網域上代管的 assetlinks.json
檔案:
https://YOUR_DOMAIN/.well-known/assetlinks.json
「Dynamic Links」現在會直接傳送到你的應用程式。你將可取得深層連結和其他
在新增應用程式連結的 Activity 中呼叫 getDynamicLink()
,藉此Dynamic Link 資料
處理深層連結)。
注意:透過應用程式連結叫用時,系統會直接將使用者帶往應用程式, 動態連結不符合最低要求。應用程式開啟後 必須比較動態連結的最低版本 ( getminimumappversion ) 對 PackageInfo.versionCode,並在必要時使用 getUpdateAppIntent。