אתם יכולים ליצור קישורים דינמיים קצרים או ארוכים באמצעות Firebase Dynamic Links Builder API. ה-API הזה מקבל קישור דינמי ארוך או אובייקט שמכיל פרמטרים של קישור דינמי, ומחזיר כתובות URL כמו בדוגמאות הבאות:
https://example.com/link/WXYZ
https://example.page.link/WXYZ
הגדרת Firebase ו-Dynamic Links 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 שמותרים בקישורי העומק ובקישורי הגיבוי. כך תוכלו למנוע מצדדים לא מורשים ליצור קישורים דינמיים שמפנים מהדומיין שלכם לאתרים שאין לכם שליטה עליהם.
יצירת קישור דינמי מפרמטרים
כדי ליצור קישור דינמי, יוצרים אובייקט 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. A
דוגמאות לשם דומיין של קישור דינמי:
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 | הקישור לפתיחה באייפדים כשהאפליקציה לא מותקנת. אפשר לציין את הפעולה הזו כדי לבצע פעולה אחרת מלבד התקנת האפליקציה מ-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. |