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

מומלץ: בתפריט 'עוד' (⋮), מציינים את התבניות של כתובות ה-URL שמותרות בקישורי העומק ובקישורי הגיבוי. כך תוכלו למנוע מצדדים לא מורשים ליצור קישורים דינמיים שמפנים מהדומיין שלכם לאתרים שאין לכם שליטה עליהם.
יצירת קישור דינמי מפרמטרים
כדי ליצור Dynamic Link, יוצרים אובייקט 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
לשיטה 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);
אפשר להגדיר פרמטרים של Dynamic Link בשיטות הבאות:
| פרמטרים של קישורים דינמיים | |
|---|---|
| setLink | הקישור שהאפליקציה תפתח. מציינים כתובת URL שהאפליקציה יכולה לטפל בה, בדרך כלל התוכן או המטען הייעודי של האפליקציה, שמתחילים לוגיקה ספציפית לאפליקציה (כמו זיכוי המשתמש בשובר או הצגת מסך פתיחה). הקישור הזה חייב להיות כתובת 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 | הקישור לפתיחה באייפדים כשהאפליקציה לא מותקנת. אפשר לציין את הפעולה הזו כדי לבצע פעולה אחרת מלבד התקנת האפליקציה מ-App Store כשהאפליקציה לא מותקנת, כמו פתיחת גרסת האינטרנט של התוכן או הצגת דף קידום מכירות של האפליקציה. |
| setIpadBundleId | מזהה החבילה של אפליקציית iOS שבה רוצים להשתמש באייפדים כדי לפתוח את הקישור. האפליקציה צריכה להיות מקושרת לפרויקט שלכם מדף הסקירה הכללית במסוף 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. |