אתם יכולים ליצור קישורים דינמיים קצרים או ארוכים באמצעות Firebase Dynamic Links Builder API. ה-API הזה מקבל קישור דינמי ארוך או אובייקט שמכיל פרמטרים של קישור דינמי, ומחזיר כתובות URL כמו בדוגמאות הבאות:
https://example.com/link/WXYZ
https://example.page.link/WXYZ
הגדרת Firebase ו-SDK להטמעת קישורים דינמיים
כדי ליצור קישורים דינמיים באפליקציה ל-Android, צריך לכלול את Firebase SDK. אם האפליקציה שלכם מוגדרת לקבל קישורים דינמיים, כבר השלמתם את השלבים האלה ואתם יכולים לדלג על הקטע הזה.
אם עדיין לא עשיתם זאת, התקינו והפעילו את ערכות ה-SDK של Firebase ל-Flutter.
מתיקיית השורש של הפרויקט ב-Flutter, מריצים את הפקודה הבאה כדי להתקין את הפלאגין של הקישורים הדינמיים:
flutter pub add firebase_dynamic_linksאם אתם מפתחים אפליקציית Android, פתחו את הדף הגדרות הפרויקט במסוף Firebase וודאו שציינתם את מפתח החתימה SHA-1. אם אתם משתמשים בקישורים לאפליקציות, ציינו גם את מפתח ה-SHA-256.
במסוף Firebase, פותחים את הקטע קישורים דינמיים.
אם עדיין לא הגדרתם דומיין לקישורים הדינמיים, לוחצים על הלחצן Get Started ופועלים לפי ההנחיות.
אם כבר יש לכם דומיין של קישורים דינמיים, שימו לב אליו. כשיוצרים קישורים דינמיים באופן פרוגרמטי, צריך לספק דומיין של קישורים דינמיים.

מומלץ: בתפריט "עוד" (⋮), מציינים את תבניות ה-URL שמותרות בקישורי העומק ובקישורים החלופיים. כך תמנעו מגורמים לא מורשים ליצור קישורים דינמיים שמפנים מהדומיין שלכם לאתרים שאינם בשליטתכם.
יצירת קישור דינמי מפרמטרים
כדי ליצור קישור דינמי, יוצרים אובייקט DynamicLinkParameters חדש ומעבירים אותו אל buildLink() או אל buildShortLink().
בדוגמה המינימלית הבאה נוצר קישור דינמי ארוך אל https://www.example.com/ שנפתח באמצעות com.example.app.android ב-Android ובאמצעות האפליקציה com.example.app.ios ב-iOS:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildLink(dynamicLinkParams);
כדי ליצור קישור דינמי קצר, מעבירים את האובייקט DynamicLinkParameters אל buildShortLink(). כדי ליצור את הקישור הקצר, צריך לבצע קריאה לרשת.
לדוגמה:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
כברירת מחדל, קישורים דינמיים קצרים נוצרים עם סיומות באורך של כמה תווים בלבד. הקישורים אמנם קצרים יותר, אבל יש סיכוי שמישהו ינחש קישור מקוצר תקין. בדרך כלל, אין בכך נזק כי הקישור מוביל למידע שגלוי לכולם.
עם זאת, אם הקישורים המקוצרים מובילים למידע ספציפי למשתמש, כדאי ליצור קישורים ארוכים יותר עם סיומות של 17 תווים, כך שיהיה קשה מאוד לנחש קישור דינמי תקין. כדי לעשות את זה, מעבירים את ShortDynamicLinkType.unguessable ל-method buildShortLink():
final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
dynamicLinkParams,
shortLinkType: ShortDynamicLinkType.unguessable,
);
פרמטרים של קישורים דינמיים
אתם יכולים להשתמש ב-Dynamic Link Builder API כדי ליצור קישורים דינמיים עם כל אחד מהפרמטרים הנתמכים. למאמרי העזרה של ה-API
בדוגמה הבאה נוצר קישור דינמי עם כמה פרמטרים נפוצים:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(
packageName: "com.example.app.android",
minimumVersion: 30,
),
iosParameters: const IOSParameters(
bundleId: "com.example.app.ios",
appStoreId: "123456789",
minimumVersion: "1.0.1",
),
googleAnalyticsParameters: const GoogleAnalyticsParameters(
source: "twitter",
medium: "social",
campaign: "example-promo",
),
socialMetaTagParameters: SocialMetaTagParameters(
title: "Example of a Dynamic Link",
imageUrl: Uri.parse("https://example.com/image.png"),
),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
אפשר להגדיר פרמטרים של קישור דינמי בשיטות הבאות:
| פרמטרים של DynamicLink | |
|---|---|
| setLink | הקישור שהאפליקציה תפתח. מציינים כתובת URL שהאפליקציה יכולה לטפל בה, בדרך כלל התוכן או המטען הייעודי (payload) של האפליקציה, שמפעילים לוגיקה ספציפית לאפליקציה (כמו זיכוי המשתמש בשובר או הצגת מסך פתיחה). הקישור הזה חייב להיות כתובת URL בפורמט תקין, עם קידוד URL תקין, להשתמש ב-HTTP או ב-HTTPS, והוא לא יכול להיות קישור דינמי אחר. |
| setDomainUriPrefix | התחילית של כתובת ה-URL של הקישור הדינמי, שאפשר למצוא במסוף Firebase. דומיין של קישור דינמי נראה כמו בדוגמאות הבאות:
https://example.com/link https://example.page.link |
| AndroidParameters | |
|---|---|
| setFallbackUrl | הקישור שייפתח כשהאפליקציה לא מותקנת. צריך לציין את הפרמטר הזה כדי לבצע פעולה אחרת במקום להתקין את האפליקציה מחנות Play כשהאפליקציה לא מותקנת, למשל לפתוח את גרסת האינטרנט לנייד של התוכן או להציג דף קידום מכירות של האפליקציה. |
| setMinimumVersion | ה-versionCode של הגרסה המינימלית של האפליקציה שיכולה לפתוח את הקישור. אם האפליקציה המותקנת היא גרסה ישנה יותר, המשתמש מועבר לחנות Play כדי לשדרג את האפליקציה. |
| IosParameters | |
|---|---|
| setAppStoreId | מזהה האפליקציה ב-App Store, שמשמש להפניית משתמשים ל-App Store כשהאפליקציה לא מותקנת |
| setFallbackUrl | הקישור שייפתח כשהאפליקציה לא מותקנת. צריך לציין את זה כדי לבצע פעולה אחרת במקום להתקין את האפליקציה מ-App Store כשהאפליקציה לא מותקנת, למשל לפתוח את גרסת האינטרנט לנייד של התוכן או להציג דף קידום מכירות של האפליקציה. |
| setCustomScheme | סכמת ה-URL המותאמת אישית של האפליקציה, אם היא הוגדרה כמשהו אחר ממזהה החבילה של האפליקציה |
| setIpadFallbackUrl | הקישור שייפתח במכשירי iPad אם האפליקציה לא מותקנת. צריך לציין את זה כדי לעשות משהו אחר במקום להתקין את האפליקציה מ-App Store כשהאפליקציה לא מותקנת, כמו לפתוח את גרסת האינטרנט של התוכן או להציג דף קידום מכירות של האפליקציה. |
| setIpadBundleId | מזהה החבילה של האפליקציה ל-iOS שמשמשת לפתיחת הקישור במכשירי iPad. האפליקציה צריכה להיות מקושרת לפרויקט דרך דף הסקירה הכללית במסוף Firebase. |
| setMinimumVersion | מספר הגרסה המינימלית של האפליקציה שיכולה לפתוח את הקישור. הדגל הזה מועבר לאפליקציה כשהיא נפתחת, והאפליקציה צריכה להחליט מה לעשות איתו. |
| NavigationInfoParameters | |
|---|---|
| setForcedRedirectEnabled | אם הערך הוא "1", המערכת מדלגת על דף התצוגה המקדימה של האפליקציה כשפותחים את הקישור הדינמי, ומפנה במקום זאת לאפליקציה או לחנות. דף התצוגה המקדימה של האפליקציה (מופעל כברירת מחדל) יכול להפנות משתמשים בצורה אמינה יותר ליעד המתאים ביותר כשהם פותחים קישורים דינמיים באפליקציות. עם זאת, אם אתם מצפים שקישור דינמי ייפתח רק באפליקציות שיכולות לפתוח קישורים דינמיים בצורה אמינה בלי הדף הזה, אתם יכולים להשבית אותו באמצעות הפרמטר הזה. הפרמטר הזה ישפיע על ההתנהגות של הקישור הדינמי רק ב-iOS. |
| SocialMetaTagParameters | |
|---|---|
| setTitle | הכותרת שבה המערכת תשתמש כשהקישור הדינמי ישותף בפוסט ברשתות חברתיות. |
| setDescription | התיאור שבו ייעשה שימוש כשהקישור הדינמי ישותף בפוסט ברשתות חברתיות. |
| setImageUrl | כתובת ה-URL של תמונה שקשורה לקישור הזה. התמונה צריכה להיות בגודל של לפחות 300x200 פיקסלים, ופחות מ-300KB. |
| GoogleAnalyticsParameters | |
|---|---|
| setSource setMedium setCampaign setTerm setContent |
פרמטרים של ניתוח נתונים ב-Google Play. הפרמטרים האלה (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`) מועברים לחנות Play וגם מצורפים למטען הייעודי (payload) של הקישור. |
| ItunesConnectAnalyticsParameters | |
|---|---|
| setProviderToken setAffiliateToken setCampaignToken |
פרמטרים של ניתוח נתונים ב-iTunes Connect. הפרמטרים האלה (`pt`, `at`, `ct`) מועברים ל-App Store. |