כדי לקבל את ה-Firebase Dynamic Links שיצרתם, עליכם לכלול את ה-SDK של Dynamic Links באפליקציה ולקרוא ל-method 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:33.5.1")) // 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, האפליקציה תמיד תשתמש בגרסאות תואמות של ספריות Android של Firebase.
(חלופה) מוסיפים יחסי תלות לספריות של 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.2' }
- במסוף Firebase, פותחים את הקטע Dynamic Links. אם תתבקשו לעשות זאת, יש לאשר את התנאים וההגבלות.
הוספת מסנן כוונה לקישור עומק
בדומה לקישורי עומק רגילים, צריך להוסיף מסנן 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+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()
בכל פעילות שעשויה להיות מופעלת על ידי הקישור, גם אם הקישור עשוי להיות זמין מה-Intent באמצעות getIntent().getData()
. קריאה ל-getDynamicLink()
מאפשרת לאחזר את הקישור ולמחוק את הנתונים האלה, כך שהאפליקציה שלכם תוכל לעבד אותם רק פעם אחת.
בדרך כלל, קוראים לפונקציה getDynamicLink()
בפעילות הראשית וגם לכל פעילות שמופעלת על ידי מסנני Intent שתואמים לקישור.
הקלטת ניתוח הנתונים
אפשר לעקוב באופן אוטומטי אחרי האירועים הבאים ב-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()
בפעילות שבה הוספתם את מסנן הכוונה של קישורי האפליקציות (כפי שמתואר בקטע טיפול בקישורי עומק).
הערה: מכיוון שהפעלה דרך קישורי אפליקציה מעבירה את המשתמש ישירות לאפליקציה, קישור דינמי לא יכול לעמוד בדרישות לגבי הגרסה המינימלית הנדרשת. לכן, אחרי פתיחת האפליקציה, צריך להשוות בין הגרסה המינימלית של הקישור הדינמי (getminimumappversion) לבין PackageInfo.versionCode, ולהפנות את המשתמש לשדרוג האפליקציה אם יש צורך, באמצעות getUpdateAppIntent.