אפשר ליצור קישורים דינמיים קצרים או ארוכים באמצעות ה-API של הכלי ליצירת קישורים דינמיים ב-Firebase. ה-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, פותחים את הקטע קישורים דינמיים.
אם עדיין לא הגדרתם דומיין לקישורים הדינמיים, לוחצים על הלחצן 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
לשיטה 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 | |
---|---|
הגדרת קישור | הקישור שבו האפליקציה תיפתח. מציינים כתובת URL שהאפליקציה יכולה לטפל בה, בדרך כלל התוכן או עומס העבודה של האפליקציה, שמפעילים לוגיקה ספציפית לאפליקציה (למשל, זיכוי המשתמש בשובר או הצגת מסך קבלת פנים). הקישור צריך להיות כתובת URL בפורמט תקין, בקידוד כתובת URL תקין, להשתמש ב-HTTP או ב-HTTPS והוא לא יכול להיות קישור דינמי אחר. |
setDomainUriPrefix | קידומת של כתובת URL של קישור דינמי, שנמצאת במסוף Firebase. דומיין של קישור דינמי נראה כמו בדוגמאות הבאות:
https://example.com/link https://example.page.link |
AndroidParameters | |
---|---|
setFallbackUrl | הקישור שייפתח כשהאפליקציה לא מותקנת. מציינים את הערך הזה כדי לבצע פעולה אחרת מלהתקין את האפליקציה מחנות Play כשהיא לא מותקנת, למשל לפתוח את גרסת האינטרנט לנייד של התוכן או להציג דף קידום מכירות של האפליקציה. |
setMinimumVersion | קוד הגרסה של הגרסה המינימלית של האפליקציה שיכולה לפתוח את הקישור. אם האפליקציה המותקנת היא גרסה ישנה יותר, המשתמש מועבר לחנות Play כדי לשדרג את האפליקציה. |
פרמטרים של Ios | |
---|---|
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. |