אתה יכול ליצור קישורים דינמיים קצרים או ארוכים עם ה-API של Firebase Dynamic Links Builder. ממשק API זה מקבל קישור דינמי ארוך או אובייקט המכיל פרמטרים של קישור דינמי, ומחזיר כתובות URL כמו הדוגמאות הבאות:
https://example.com/link/WXYZ https://example.page.link/WXYZ
הגדר את Firebase ואת ה-SDK של Dynamic Links
לפני שתוכל ליצור קישורים דינמיים באפליקציית Android שלך, עליך לכלול את Firebase SDK. אם האפליקציה שלך מוגדרת לקבל קישורים דינמיים, כבר השלמת את השלבים האלה ואתה יכול לדלג על סעיף זה.
אם עדיין לא עשית זאת, הוסף את 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, פתח את הקטע קישורים דינמיים .
אם עדיין לא הסכמת לתנאי השירות והגדרת דומיין עבור הקישורים הדינמיים שלך, עשה זאת כאשר תתבקש.
אם כבר יש לך דומיין Dynamic Links, שים לב אליו. עליך לספק דומיין של קישורים דינמיים כאשר אתה יוצר קישורים דינמיים באופן פרוגרמטי.
- מומלץ : ציין את דפוסי כתובות האתרים המותרים בקישורי העומק ובקישורי החלפה שלך. על ידי כך, אתה מונע מגורמים לא מורשים ליצור קישורים דינמיים המפנים מהדומיין שלך לאתרים שאינך בשליטתם. ראה אפשר דפוסי כתובות אתרים ספציפיים .
השתמש במסוף Firebase
אם אתה רוצה ליצור קישור דינמי יחיד, או למטרות בדיקה, או שצוות השיווק שלך יוכל ליצור קישור בקלות שניתן להשתמש בו במשהו כמו פוסט במדיה חברתית, הדרך הפשוטה ביותר תהיה לבקר במסוף Firebase וליצור אחד בצע את הטופס שלב אחר שלב באופן ידני.
צור קישור דינמי מפרמטרים
כדי ליצור קישור דינמי, צור אובייקט DynamicLink
חדש עם ה-Builder שלו, תוך ציון הפרמטרים של Dynamic Link עם שיטות ה-Builder. לאחר מכן, קרא buildDynamicLink
או buildShortDynamicLink
.
הדוגמה המינימלית הבאה יוצרת קישור דינמי ארוך אל https://www.example.com/
שנפתח עם אפליקציית Android שלך ב-Android והאפליקציה com.example.ios
ב-iOS:
Kotlin+KTX
val dynamicLink = Firebase.dynamicLinks.dynamicLink { link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" // Open links with this app on Android androidParameters { } // Open links with com.example.ios on iOS iosParameters("com.example.ios") { } } val dynamicLinkUri = dynamicLink.uri
Java
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") // Open links with this app on Android .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build()) // Open links with com.example.ios on iOS .setIosParameters(new DynamicLink.IosParameters.Builder("com.example.ios").build()) .buildDynamicLink(); Uri dynamicLinkUri = dynamicLink.getUri();
כדי ליצור קישור דינמי קצר, בנה DynamicLink
באותו אופן, ולאחר מכן קרא buildShortDynamicLink
. בניית קישור קצר דורשת שיחת רשת, כך שבמקום להחזיר ישירות את הקישור, buildShortDynamicLink
מחזירה Task
, מה שהופך את הקישור הקצר לזמין כאשר הבקשה מסתיימת. לדוגמה:
Kotlin+KTX
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync { link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" // Set parameters // ... }.addOnSuccessListener { (shortLink, flowchartLink) -> // You'll need to import com.google.firebase.dynamiclinks.component1 and // com.google.firebase.dynamiclinks.component2 // Short link created processShortLink(shortLink, flowchartLink) }.addOnFailureListener { // Error // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") // Set parameters // ... .buildShortDynamicLink() .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() { @Override public void onComplete(@NonNull Task<ShortDynamicLink> task) { if (task.isSuccessful()) { // Short link created Uri shortLink = task.getResult().getShortLink(); Uri flowchartLink = task.getResult().getPreviewLink(); } else { // Error // ... } } });
כברירת מחדל, קישורים דינמיים קצרים נוצרים עם סיומות קישור בנות 17 תווים שהופכות את זה לא סביר ביותר שמישהו יכול לנחש קישור דינמי חוקי. אם, למקרה השימוש שלך, אין נזק בכך שמישהו יצליח לנחש קישור קצר, אולי תעדיף ליצור סיומות שהן רק כל עוד נדרשות כדי להיות ייחודיות, מה שאתה יכול לעשות על ידי העברת ShortDynamicLink.Suffix.SHORT
לשיטת buildShortDynamicLink
:
Kotlin+KTX
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) { // Set parameters // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() // ... .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT); // ...
פרמטרים של קישור דינמי
אתה יכול להשתמש בממשק ה-API של Dynamic Link Builder כדי ליצור קישורים דינמיים עם כל אחד מהפרמטרים הנתמכים. עיין בהפניה ל-API לפרטים.
הדוגמה הבאה יוצרת קישור דינמי עם מספר פרמטרים נפוצים:
Kotlin+KTX
val dynamicLink = Firebase.dynamicLinks.dynamicLink { // or Firebase.dynamicLinks.shortLinkAsync link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" androidParameters("com.example.android") { minimumVersion = 125 } iosParameters("com.example.ios") { appStoreId = "123456789" minimumVersion = "1.0.1" } googleAnalyticsParameters { source = "orkut" medium = "social" campaign = "example-promo" } itunesConnectAnalyticsParameters { providerToken = "123456" campaignToken = "example-promo" } socialMetaTagParameters { title = "Example of a Dynamic Link" description = "This link works whether the app is installed or not!" } }
Java
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") .setAndroidParameters( new DynamicLink.AndroidParameters.Builder("com.example.android") .setMinimumVersion(125) .build()) .setIosParameters( new DynamicLink.IosParameters.Builder("com.example.ios") .setAppStoreId("123456789") .setMinimumVersion("1.0.1") .build()) .setGoogleAnalyticsParameters( new DynamicLink.GoogleAnalyticsParameters.Builder() .setSource("orkut") .setMedium("social") .setCampaign("example-promo") .build()) .setItunesConnectAnalyticsParameters( new DynamicLink.ItunesConnectAnalyticsParameters.Builder() .setProviderToken("123456") .setCampaignToken("example-promo") .build()) .setSocialMetaTagParameters( new DynamicLink.SocialMetaTagParameters.Builder() .setTitle("Example of a Dynamic Link") .setDescription("This link works whether the app is installed or not!") .build()) .buildDynamicLink(); // Or buildShortDynamicLink()
אתה יכול להגדיר פרמטרים של קישור דינמי בשיטות הבאות:
פרמטרים של DynamicLink | |
---|---|
setLink | הקישור שהאפליקציה שלך תיפתח. ציין כתובת אתר שהאפליקציה שלך יכולה לטפל בה, בדרך כלל התוכן או המטען של האפליקציה, אשר יוזמת היגיון ספציפי לאפליקציה (כגון זיכוי של המשתמש בקופון או הצגת מסך פתיחה). קישור זה חייב להיות כתובת אתר בפורמט היטב, מקודד כראוי של כתובת אתר, להשתמש ב-HTTP או ב-HTTPS, ולא יכול להיות קישור דינמי אחר. |
setDomainUriPrefix | קידומת כתובת האתר של קישור דינמי, שתוכל למצוא במסוף Firebase. תחום קישור דינמי נראה כמו הדוגמאות הבאות: https://example.com/link https://example.page.link |
פרמטרים של אנדרואיד | |
---|---|
setFallbackUrl | הקישור שייפתח כשהאפליקציה לא מותקנת. ציין זאת כדי לעשות משהו אחר מלבד התקנת האפליקציה שלך מחנות Play כאשר האפליקציה אינה מותקנת, כגון פתיחת גרסת האינטרנט לנייד של התוכן, או הצגת דף קידום מכירות עבור האפליקציה שלך. |
setMinimumVersion | versionCode של הגרסה המינימלית של האפליקציה שלך שיכולה לפתוח את הקישור. אם האפליקציה המותקנת היא גרסה ישנה יותר, המשתמש מועבר לחנות Play כדי לשדרג את האפליקציה. |
IosParameters | |
---|---|
setAppStoreId | מזהה ה-App Store של האפליקציה שלך, המשמש לשליחת משתמשים ל-App Store כאשר האפליקציה לא מותקנת |
setFallbackUrl | הקישור שייפתח כשהאפליקציה לא מותקנת. ציין זאת כדי לעשות משהו אחר מלבד התקנת האפליקציה שלך מ-App Store כאשר האפליקציה אינה מותקנת, כגון פתיחת גרסת האינטרנט לנייד של התוכן, או הצגת דף קידום מכירות עבור האפליקציה שלך. |
setCustomScheme | סכימת כתובת האתר המותאמת אישית של האפליקציה שלך, אם היא מוגדרת כמשהו אחר מאשר מזהה החבילה של האפליקציה שלך |
setIpadFallbackUrl | הקישור לפתיחה באייפד כשהאפליקציה לא מותקנת. ציין זאת כדי לעשות משהו אחר מלבד התקנת האפליקציה שלך מ-App Store כאשר האפליקציה אינה מותקנת, כגון לפתוח את גרסת האינטרנט של התוכן, או להציג דף קידום מכירות עבור האפליקציה שלך. |
setIpadBundleId | מזהה החבילה של אפליקציית iOS לשימוש באייפד לפתיחת הקישור. האפליקציה חייבת להיות מחוברת לפרויקט שלך מדף הסקירה הכללית של מסוף Firebase. |
setMinimumVersion | מספר הגרסה של הגרסה המינימלית של האפליקציה שלך שיכולה לפתוח את הקישור. הדגל הזה מועבר לאפליקציה שלך כאשר היא נפתחת, והאפליקציה שלך חייבת להחליט מה לעשות איתה. |
NavigationInfoParameters | |
---|---|
setForcedRedirectEnabled | אם מוגדר ל'1', דלג על דף התצוגה המקדימה של האפליקציה כאשר הקישור הדינמי נפתח, ובמקום זאת הפנה מחדש לאפליקציה או לחנות. דף התצוגה המקדימה של האפליקציה (מופעל כברירת מחדל) יכול לשלוח משתמשים בצורה מהימנה יותר ליעד המתאים ביותר כאשר הם פותחים קישורים דינמיים באפליקציות; עם זאת, אם אתה מצפה שקישור דינמי ייפתח רק באפליקציות שיכולות לפתוח קישורים דינמיים בצורה מהימנה ללא דף זה, תוכל להשבית אותו עם פרמטר זה. פרמטר זה ישפיע על התנהגות הקישור הדינמי רק ב-iOS. |
SocialMetaTagParameters | |
---|---|
setTitle | הכותרת לשימוש כאשר הקישור הדינמי משותף בפוסט חברתי. |
setDescription | התיאור לשימוש כאשר הקישור הדינמי משותף בפוסט חברתי. |
setImageUrl | כתובת האתר לתמונה הקשורה לקישור הזה. התמונה צריכה להיות לפחות 300x200 פיקסלים, ופחות מ-300 KB. |
פרמטרים של GoogleAnalytics | |
---|---|
setSource setMedium setCampaign setTerm setContent | פרמטרי ניתוח של Google Play. פרמטרים אלו ( utm_source , utm_medium , utm_campaign , utm_term , utm_content ) מועברים לחנות Play וכן מצורפים למטען הקישור. |
ItunesConnectAnalyticsParameters | |
---|---|
setProviderToken setAffiliateToken setCampaignToken | פרמטרי ניתוח של iTunes Connect. פרמטרים אלה ( pt , at , ct ) מועברים ל-App Store. |
קצר קישור דינמי ארוך
כדי לקצר קישור דינמי ארוך, ציין את כתובת האתר של הקישור הדינמי באמצעות setLongLink
במקום להגדיר פרמטרים בשיטות הבונה האחרות:
Kotlin+KTX
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync { longLink = Uri.parse( "https://example.page.link/?link=" + "https://www.example.com/&apn=com.example.android&ibn=com.example.ios", ) }.addOnSuccessListener { (shortLink, flowChartLink) -> // You'll need to import com.google.firebase.dynamiclinks.component1 and // com.google.firebase.dynamiclinks.component2 // Short link created processShortLink(shortLink, flowChartLink) }.addOnFailureListener { // Error // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLongLink(Uri.parse("https://example.page.link/?link=https://www.example.com/&apn=com.example.android&ibn=com.example.ios")) .buildShortDynamicLink() .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() { @Override public void onComplete(@NonNull Task<ShortDynamicLink> task) { if (task.isSuccessful()) { // Short link created Uri shortLink = task.getResult().getShortLink(); Uri flowchartLink = task.getResult().getPreviewLink(); } else { // Error // ... } } });