כדי לקבל את Firebase Dynamic Links שיצרת , עליך לכלול את Dynamic Links SDK באפליקציה שלך ולהתקשר לשיטת FirebaseDynamicLinks.getDynamicLink()
כאשר האפליקציה שלך נטענת כדי להעביר את הנתונים ב-Dynamic Link.
הגדר את Firebase ואת ה-SDK של Dynamic Links
אם עדיין לא עשית זאת, הוסף את Firebase לפרויקט Android שלך .
כאשר אתה רושם את האפליקציה שלך, ציין את מפתח החתימה שלך SHA-1. אם אתה משתמש ב-App Links, ציין גם את מפתח SHA-256 שלך.
בקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל
<project>/<app-module>/build.gradle.kts
או<project>/<app-module>/build.gradle
), הוסף את התלות עבור הקישורים הדינמיים ספרייה עבור אנדרואיד. אנו ממליצים להשתמש ב- Firebase Android BoM כדי לשלוט בגירסאות של הספרייה.לחוויה מיטבית עם קישורים דינמיים, אנו ממליצים להפעיל את Google Analytics בפרויקט Firebase שלך ולהוסיף את Firebase SDK עבור Google Analytics לאפליקציה שלך.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.8.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.
מחפש מודול ספרייה ספציפי לקוטלין? החל מאוקטובר 2023 (Firebase BoM 32.5.0) , מפתחי Kotlin ו-Java יכולים להיות תלויים במודול הספרייה הראשי (לפרטים, עיין בשאלות הנפוצות לגבי יוזמה זו ).(אלטרנטיבי) הוסף תלות בספריית 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:21.2.0' implementation 'com.google.firebase:firebase-analytics:21.6.1' }
- במסוף Firebase , פתח את הקטע קישורים דינמיים . קבל את תנאי השירות אם תתבקש לעשות זאת.
הוסף מסנן כוונות לקישורים עמוקים
בדומה לקישורים עמוקים רגילים , עליך להוסיף מסנן כוונות חדש לפעילות המטפלת בקישורי עומק עבור האפליקציה שלך. מסנן הכוונות אמור לתפוס קישורים עמוקים של הדומיין שלך, מכיוון שהקישור הדינמי יפנה מחדש לדומיין שלך אם האפליקציה שלך מותקנת. זה נדרש כדי שהאפליקציה שלך תקבל את נתוני הקישור הדינמי לאחר התקנתה/עדכון מחנות 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>
כאשר משתמשים פותחים קישור דינמי עם קישור עמוק לסכימה ולמארח שאתה מציין, האפליקציה שלך תתחיל את הפעילות עם מסנן הכוונות הזה כדי לטפל בקישור.
טפל בקישורים עמוקים
כדי לקבל את הקישור העמוק, התקשר לשיטת 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()
בנקודות הכניסה לאפליקציה שלך: - פעילויות משגר. למשל:
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()
.
טיפול בקישורים דינמיים באמצעות קישורי אפליקציות
ב-Android 6.0 (רמת API 23) ומעלה, אתה יכול להגדיר את האפליקציה שלך לטיפול בקישורים דינמיים ישירות כאשר האפליקציה שלך כבר מותקנת על ידי שימוש בקישורי אפליקציות Android .
ודא שהוספת את טביעת האצבע של אישור SHA256 עבור האפליקציה שלך לפרויקט שלך במסוף Firebase . Dynamic Links יטפל בהגדרת השיוך לאתר App Links לדומיין 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 שלך, אבל אתה יכול לבדוק זאת על ידי פתיחת הקובץ assetlinks.json
המתארח בדומיין Dynamic Links שלך:
https://YOUR_DOMAIN/.well-known/assetlinks.jsonיש לכלול את כל שמות החבילות של יישומי Firebase שלך.
קישורים דינמיים יישלחו כעת ישירות לאפליקציה שלך. תוכל לקבל את הקישור העמוק ונתונים אחרים של קישור דינמי על ידי קריאה ל- getDynamicLink()
בפעילות שאליה הוספת את מסנן הכוונות App Links (כמתואר בטיפול בקישורים עמוקים ).
הערה: מכיוון שהפעלת באמצעות קישורי אפליקציות מובילה את המשתמש ישירות לאפליקציה, קישור דינמי אינו יכול לכבד את הגרסה המינימלית הנדרשת. אז לאחר פתיחת האפליקציה, עליך להשוות את גרסת המינימום של הקישור הדינמי ( getminimumappversion ) מול PackageInfo.versionCode ולהפנות את המשתמש לשדרג את האפליקציה במידת הצורך באמצעות getUpdateAppIntent .