Google is committed to advancing racial equity for Black communities. See how.
דף זה תורגם על ידי Cloud Translation API.
Switch to English

צור קישורים דינמיים ב- Android

ניתן ליצור קישורים דינמיים קצרים או ארוכים באמצעות ממשק ה- API לבניית קישורים דינמיים של Firebase. ממשק API זה מקבל קישור דינמי ארוך או אובייקט המכיל פרמטרים של קישור דינמי ומחזיר כתובות אתרים כמו הדוגמאות הבאות:

https://example.com/link/WXYZ
https://example.page.link/WXYZ

לפני שתוכל ליצור קישורים דינמיים באפליקציית Android שלך, עליך לכלול את ה- SDK של Firebase. אם האפליקציה שלך מוגדרת לקבל קישורים דינמיים, כבר השלמת את השלבים הבאים ואתה יכול לדלג על החלק הזה.

  1. אם עדיין לא עשית זאת, הוסף את Firebase לפרויקט Android שלך .

    כשאתה רושם את האפליקציה שלך, ציין את מפתח החתימה שלך SHA-1. אם אתה משתמש בקישורי אפליקציות, ציין גם את מפתח SHA-256.

  2. באמצעות Firebase Android BoM , הצהיר על התלות בספריית Android Dynamic Links במודול שלך (ברמת האפליקציה) בקובץ Gradle (בדרך כלל app/build.gradle ).

    לחוויה אופטימלית עם קישורים דינמיים, אנו ממליצים להפעיל את Google Analytics בפרויקט שלך. כמו כן, כחלק מהגדרת Analytics, עליך להוסיף את ה- SDK של Firebase עבור Google Analytics לאפליקציה שלך.

    ג'אווה

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:25.12.0')
    
        // Declare 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 {
        // Declare 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:19.1.1'
        implementation 'com.google.firebase:firebase-analytics:17.6.0'
    }
    

    Kotlin + KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:25.12.0')
    
        // Declare 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-ktx'
        implementation 'com.google.firebase:firebase-analytics-ktx'
    }
    

    על ידי שימוש ב- Firebase Android BoM , היישום שלך ישתמש תמיד בגרסאות תואמות של ספריות Android ל- Firebase.

    (חלופי) הצהיר על תלות בספריית Firebase מבלי להשתמש ב- BoM

    אם תבחר שלא להשתמש ב- Firebase BoM, עליך לציין כל גרסת ספריית Firebase בשורת התלות שלה.

    שים לב שאם אתה משתמש בספריות Firebase מרובות באפליקציה שלך, אנו ממליצים בחום להשתמש ב- BoM לניהול גרסאות ספרייה, מה שמבטיח שכל הגרסאות תואמות.

    dependencies {
        // Declare 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-ktx:19.1.1'
        implementation 'com.google.firebase:firebase-analytics-ktx:17.6.0'
    }
    
  3. במסוף Firebase, פתח את הקטע קישורים דינמיים .
  4. אם עדיין לא קיבלת את תנאי השירות והגדרת דומיין עבור הקישורים הדינמיים שלך, עשה זאת כשתתבקש לעשות זאת.

    אם כבר יש לך תחום קישורים דינמיים, שים לב אליו. עליך לספק דומיין קישורים דינמיים כאשר אתה יוצר באופן תכנותי קישורים דינמיים.

  5. מומלץ : ציין את דפוסי ה- URL המותרים בקישורים העמוקים ובקישורי ה- fallback. בכך אתה מונע מגורמים בלתי מורשים ליצור קישורים דינמיים המפנים מחדש מהדומיין שלך לאתרים שאינך שולט בהם. ראה דפוסי כתובות אתרים לרשימת היתרים .

השתמש במסוף Firebase

אם אתה רוצה ליצור קישור דינמי יחיד, למטרות בדיקה, או כדי שצוות השיווק שלך יצור בקלות קישור שיכול לשמש במשהו כמו פוסט ברשתות חברתיות, הדרך הפשוטה ביותר תהיה לבקר במסוף Firebase וליצור קישור כזה. באופן ידני בעקבות הטופס שלב אחר שלב.

כדי ליצור קישור דינמי, צור אובייקט DynamicLink חדש עם ה- Builder שלו, וציין את הפרמטרים של Dynamic Link בשיטות Builder. לאחר מכן, התקשר ל- buildDynamicLink או buildShortDynamicLink .

הדוגמה המינימלית הבאה יוצרת קישור דינמי ארוך ל- https://www.example.com/ שנפתח באפליקציית Android שלך ב- Android וב- com.example.ios ב- iOS:

ג'אווה

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();

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

כדי ליצור קישור דינמי קצר, בנה DynamicLink באותה הדרך ואז התקשר ל- buildShortDynamicLink . בניית קישור קצר מחייבת שיחת רשת, ולכן במקום להחזיר את הקישור ישירות, buildShortDynamicLink מחזיר Task , מה שהופך את הקישור הקצר לזמין לאחר השלמת הבקשה. לדוגמה:

ג'אווה

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
                    // ...
                }
            }
        });

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.ktx.component1 and
    // com.google.firebase.dynamiclinks.ktx.component2

    // Short link created
    processShortLink(shortLink, flowchartLink)
}.addOnFailureListener {
    // Error
    // ...
}

כברירת מחדל, קישורים דינמיים קצרים נוצרים עם סיומות של 17 תווים, מה שהופך את זה מאוד לא סביר שמישהו יכול לנחש קישור דינמי חוקי. אם, עבור המקרה שלכם, יש לא מזיק למישהו ניחוש בהצלחה קישור קצר, ייתכן שתעדיף ליצור סיומות שאינן רק ככל שיידרש כדי להיות ייחודי, שבו אתה יכול לעשות על ידי העברת ShortDynamicLink.Suffix.SHORT אל buildShortDynamicLink השיטה :

ג'אווה

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        // ...
        .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT);
        // ...

Kotlin + KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) {
    // Set parameters
    // ...
}

אתה יכול להשתמש בממשק ה- API של בניית קישורים דינמיים כדי ליצור קישורים דינמיים עם כל אחד מהפרמטרים הנתמכים. לפרטים, עיין בהפניה ל- API .

הדוגמא הבאה יוצרת קישור דינמי עם מספר פרמטרים נפוצים:

ג'אווה

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()

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!"
    }
}

ניתן להגדיר פרמטרים של קישור דינמי בשיטות הבאות:

פרמטרים של DynamicLink
setLink

הקישור שהאפליקציה שלך תפתח. ציין כתובת URL שהאפליקציה שלך יכולה לטפל בה, בדרך כלל תוכן האפליקציה או מטען המטען שלה, היוזם היגיון ספציפי לאפליקציה (כגון זיכוי המשתמש בקופון או הצגת מסך קבלת פנים). קישור זה חייב להיות כתובת אתר מעוצבת היטב, להיות מקודד כהלכה, להשתמש ב- HTTP או HTTPS ולא יכול להיות קישור דינמי אחר.

setDomainUriPrefix קידומת ה- URL של קישור דינמי שלך, שתוכל למצוא במסוף Firebase. תחום קישור דינמי נראה כמו הדוגמאות הבאות:
https://example.com/link
https://example.page.link
AndroidParameters
setFallbackUrl הקישור לפתיחה כאשר האפליקציה לא מותקנת. ציין זאת כדי לעשות משהו אחר מלבד להתקין את האפליקציה שלך מחנות Play כאשר האפליקציה לא מותקנת, כמו לפתוח את גרסת האינטרנט הנייד של התוכן, או להציג דף קידום מכירות עבור האפליקציה שלך.
setMinimumVersion versionCode של הגרסה המינימאלית של האפליקציה שלך שיכול לפתוח את הקישור. אם האפליקציה המותקנת היא גרסה ישנה יותר, המשתמש מועבר לחנות Play כדי לשדרג את האפליקציה.
IosParameters
setAppStoreId מזהה האפליקציה של האפליקציה שלך, משמש לשליחת משתמשים לחנות האפליקציות כאשר האפליקציה לא מותקנת
setFallbackUrl הקישור לפתיחה כאשר האפליקציה לא מותקנת. ציין זאת כדי לעשות משהו אחר מלבד להתקין את האפליקציה שלך מחנות האפליקציות כאשר האפליקציה לא מותקנת, כמו לפתוח את גרסת האינטרנט הנייד של התוכן, או להציג דף קידום מכירות עבור האפליקציה שלך.
setCustomScheme תוכנית ה- URL המותאמת אישית של האפליקציה שלך, אם היא מוגדרת כמשהו שאינו מזהה החבילה של האפליקציה שלך
setIpadFallbackUrl הקישור לפתיחה באייפדים כאשר האפליקציה לא מותקנת. ציין זאת כדי לעשות משהו אחר מלבד להתקין את האפליקציה שלך מחנות האפליקציות כאשר האפליקציה לא מותקנת, כמו לפתוח את גרסת האינטרנט של התוכן, או להציג דף קידום מכירות עבור האפליקציה שלך.
setIpadBundleId מזהה הצרור של אפליקציית iOS לשימוש באייפדים כדי לפתוח את הקישור. על האפליקציה להיות מחוברת לפרויקט שלך מדף הסקירה הכללית של מסוף Firebase.
setMinimumVersion מספר הגרסה של הגרסה המינימלית של האפליקציה שלך שיכולה לפתוח את הקישור. דגל זה מועבר לאפליקציה שלך כאשר היא נפתחת, ועל האפליקציה שלך להחליט מה לעשות איתה.
NavigationInfoParameters
setForcedRedirectEnabled אם מוגדר ל- '1', דלג על דף התצוגה המקדימה של האפליקציה כאשר הקישור הדינמי נפתח, ובמקום להפנות מחדש לאפליקציה או לחנות. דף התצוגה המקדימה של האפליקציה (מופעל כברירת מחדל) יכול לשלוח משתמשים בצורה אמינה יותר ליעד המתאים ביותר כאשר הם פותחים קישורים דינמיים באפליקציות; עם זאת, אם אתה מצפה שייפתח קישור דינמי רק באפליקציות שיכולות לפתוח קישורים דינמיים באופן אמין ללא דף זה, תוכל להשבית אותו באמצעות פרמטר זה. הערה: דף התצוגה המקדימה של האפליקציה מוצג כרגע רק ב- iOS, אך ייתכן שבסופו של דבר יוצג ב- Android. פרמטר זה ישפיע על התנהגות הקישור הדינמי בשתי הפלטפורמות.
SocialMetaTagParameters
setTitle הכותרת לשימוש כאשר הקישור הדינמי משותף בפוסט חברתי.
setDescription התיאור לשימוש כאשר הקישור הדינמי משותף בפוסט חברתי.
setImageUrl כתובת האתר לתמונה שקשורה לקישור זה. התמונה צריכה להיות לפחות 300x200 פיקסלים, ופחות מ -300 KB.
GoogleAnalyticsParameters
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 ) מועברים לחנות האפליקציות.

כדי לקצר קישור דינמי ארוך, ציין את כתובת האתר של הקישור הדינמי באמצעות setLongLink במקום להגדיר פרמטרים בשיטות הבונה האחרות:

ג'אווה

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
                    // ...
                }
            }
        });

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.ktx.component1 and
    // com.google.firebase.dynamiclinks.ktx.component2

    // Short link created
    processShortLink(shortLink, flowChartLink)
}.addOnFailureListener {
    // Error
    // ...
}