כדי לקבל את 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
), מוסיפים את התלות בספריית Dynamic Links ל-Android. מומלץ להשתמש ב-Firebase Android BoM כדי לשלוט בניהול הגרסאות של הספריות.כדי ליהנות מחוויה אופטימלית עם Dynamic Links, מומלץ להפעיל את Google Analytics בפרויקט Firebase ולהוסיף את Firebase SDK for Google Analytics לאפליקציה.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.0.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:23.0.0' }
- במסוף Firebase, פותחים את הקטע Dynamic Links. אם תתבקשו לעשות זאת, תצטרכו לאשר את התנאים וההגבלות.
הוספת מסנן Intent לקישורי עומק
בדומה ל
קישורי עומק רגילים, צריך להוסיף מסנן Intent חדש לפעילות שמטפלת בקישורי עומק באפליקציה. מסנן ה-Intent צריך לזהות קישורי עומק של הדומיין, כי 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 עם קישור עומק לסכימה ולמארח שציינתם, האפליקציה שלכם תתחיל את הפעילות עם מסנן הכוונות הזה כדי לטפל בקישור.
טיפול בקישורי עומק
כדי לקבל את קישור העומק, מפעילים את method getDynamicLink()
:
Kotlin
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()
בכל פעילות שיכולה להיות מופעלת על ידי הקישור, גם אם הקישור עשוי להיות זמין מה-Intent באמצעות getIntent().getData()
. כשמתקשרים אל getDynamicLink()
, הקישור מאוחזר והנתונים האלה נמחקים כדי שהאפליקציה תעבד אותם רק פעם אחת.
בדרך כלל קוראים ל-getDynamicLink()
גם בפעילות הראשית וגם בכל פעילות שמופעלת על ידי מסנני כוונות שתואמים לקישור.
ניתוח נתונים של הקלטות
אפשר לעקוב אחרי האירועים הבאים באופן אוטומטי ב-Google Analytics ולהציג אותם במסוף Firebase.
dynamic_link_app_open
dynamic_link_first_open
dynamic_link_app_update
כדי לרשום את האירועים האלה, צריך להגדיר את Google Analytics לפני שמקבלים את קישור העומק. בודקים אם התנאים הבאים מתקיימים:
- התקשרות אל
FirebaseDynamicLinks.getDynamicLink()
בנקודות הכניסה לאפליקציה: - פעילויות במרכז האפליקציות, למשל:
action="android.intent.action.MAIN"
,category="android.intent.category.LAUNCHER"
. - נקודות כניסה לפעילות, למשל:
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 ישירות כשהאפליקציה כבר מותקנת, באמצעות קישורים לאפליקציות ל-Android.
מוודאים שהוספתם את טביעת האצבע לאישור SHA256 של האפליקציה לפרויקט במסוף Firebase. Dynamic Links יטפל בהגדרת השיוך של אתר לקישורים לאפליקציות בדומיין Dynamic Links שלכם.
מוסיפים מסנן Intent שעובר אימות אוטומטי לפעילות שתטפל ב-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, ולא הדומיין של קישור העומק.
כדי שקישורי אפליקציה יפעלו, צריך לרשום את כל מסנני ה-Intent autoVerify
במניפסט. מערכת Firebase מטפלת בזה באופן אוטומטי בדומיינים של Dynamic Links, אבל אפשר לבדוק את זה על ידי פתיחת הקובץ assetlinks.json
שמתארח בדומיין של Dynamic Links:
https://YOUR_DOMAIN/.well-known/assetlinks.json
מעכשיו, Dynamic Links יישלח ישירות לאפליקציה. תוכלו לקבל את קישור העומק ונתונים אחרים של Dynamic Link על ידי קריאה ל-getDynamicLink()
בפעילות שאליה הוספתם את מסנן הכוונות App Links (כפי שמתואר במאמר טיפול בקישורי עומק).
הערה: מכיוון שהפעלת קישור דרך קישורי אפליקציה מעבירה את המשתמש ישירות לאפליקציה, קישור דינמי לא יכול לכבד את גרסת המינימום הנדרשת. לכן, אחרי שפותחים את האפליקציה, צריך להשוות בין הגרסה המינימלית של הקישור הדינמי ( getminimumappversion) לבין PackageInfo.versionCode ולהפנות את המשתמש לשדרוג האפליקציה אם נדרש, באמצעות getUpdateAppIntent.