אפשר ליצור קישורים דינמיים קצרים או ארוכים באמצעות 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, אם עוד לא עשיתם זאת.
כדי להתקין את הפלאגין של Dynamic Links, מריצים את הפקודה הבאה מהספרייה ברמה הבסיסית (root) של פרויקט Flutter:
flutter pub add firebase_dynamic_links
אם אתם מפתחים אפליקציה ל-Android, פותחים את הדף Project settings במסוף Firebase ומוודאים שציינתם את מפתח החתימה מסוג SHA-1. אם אתם משתמשים ב-App Links, עליכם לציין גם את מפתח ה-SHA-256.
במסוף Firebase, פותחים את הקטע קישורים דינמיים.
אם עדיין לא הגדרתם דומיין לקישורים הדינמיים, לוחצים על הלחצן תחילת העבודה ופועלים לפי ההוראות.
אם כבר יש לכם דומיין של קישורים דינמיים, שימו לב אליו. צריך לציין דומיין של קישורים דינמיים כשיוצרים קישורים דינמיים באופן פרוגרמטי.
מומלץ: בתפריט 'עוד' (⋮), מציינים את דפוסי כתובות ה-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
לשיטה 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 בשיטות הבאות:
פרמטרים של DynamicLink | |
---|---|
setLink | הקישור שבו האפליקציה תיפתח. מציינים כתובת URL שהאפליקציה יכולה לטפל בה, בדרך כלל התוכן או עומס העבודה של האפליקציה, שמפעילים לוגיקה ספציפית לאפליקציה (למשל, זיכוי המשתמש בשובר או הצגת מסך קבלת פנים). הקישור הזה חייב להיות כתובת URL בפורמט תקין, עם קידוד כתובת URL תקין, עם HTTP או HTTPS, ולא יכול להיות קישור דינמי אחר. |
setDomainUriPrefix | הקידומת של כתובת ה-URL של הקישור הדינמי, שאפשר למצוא במסוף Firebase. דומיין של קישור דינמי נראה כמו הדוגמאות הבאות:
https://example.com/link https://example.page.link |
AndroidParameters | |
---|---|
setFallbackUrl | הקישור שייפתח כשהאפליקציה לא מותקנת. מציינים את הערך הזה כדי לבצע פעולה אחרת מלהתקין את האפליקציה מחנות Play כשהיא לא מותקנת, למשל לפתוח את גרסת האינטרנט לנייד של התוכן או להציג דף קידום מכירות של האפליקציה. |
setMinimumVersion | קוד הגרסה של הגרסה המינימלית של האפליקציה שיכולה לפתוח את הקישור. אם האפליקציה המותקנת היא גרסה ישנה יותר, המשתמש מועבר לחנות 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 ונוספים לעומס הנתונים של הקישור. |
ItunesConnectAnalyticsParameters | |
---|---|
setProviderToken setAffiliateToken setCampaignToken |
פרמטרים של ניתוח נתונים ב-iTunes Connect. הפרמטרים האלה (pt, at, ct) מועברים ל-App Store. |