אתה יכול ליצור קישורים דינמיים קצרים או ארוכים עם ה-API של Firebase Dynamic Links Builder. ממשק API זה מקבל קישור דינמי ארוך או אובייקט המכיל פרמטרים של קישור דינמי, ומחזיר כתובות URL כמו הדוגמאות הבאות:
https://example.com/link/WXYZ https://example.page.link/WXYZ
דרישות מוקדמות
לפני שתתחיל, הקפד להוסיף את Firebase לפרויקט iOS שלך .
הגדר את Firebase ואת ה-SDK של Dynamic Links
השתמש ב- Swift Package Manager כדי להתקין ולנהל תלות ב-Firebase.
- ב-Xcode, כשפרויקט האפליקציה שלך פתוח, נווט אל קובץ > הוסף חבילות .
- כשתתבקש, הוסף את מאגר Firebase Apple platforms SDK:
- בחר את ספריית הקישורים הדינמיים.
- הוסף את הדגל
-ObjC
לקטע Other Linker Flags של הגדרות הבנייה של היעד שלך. - לחוויה מיטבית עם קישורים דינמיים, אנו ממליצים להפעיל את Google Analytics בפרויקט Firebase שלך ולהוסיף את Firebase SDK עבור Google Analytics לאפליקציה שלך. אתה יכול לבחור בספרייה ללא אוסף IDFA או עם אוסף IDFA.
- בסיום, Xcode יתחיל באופן אוטומטי לפתור ולהוריד את התלות שלך ברקע.
https://github.com/firebase/firebase-ios-sdk.git
כעת, בצע כמה שלבי תצורה:
- במסוף Firebase, פתח את הקטע קישורים דינמיים .
אם עדיין לא הסכמת לתנאי השירות והגדרת קידומת URI עבור הקישורים הדינמיים שלך, עשה זאת כאשר תתבקש.
אם כבר יש לך קידומת URI של Dynamic Links, שים לב לזה. אתה צריך לספק את זה כשאתה יוצר באופן פרוגרמטי קישורים דינמיים.
- מומלץ : ציין את דפוסי כתובות האתרים המותרים בקישורי העומק ובקישורי החלפה שלך. על ידי כך, אתה מונע מגורמים לא מורשים ליצור קישורים דינמיים המפנים מהדומיין שלך לאתרים שאינך בשליטתם. ראה אפשר דפוסי כתובות אתרים ספציפיים .
ודא שמזהה ה-App Store של האפליקציה שלך וקידומת מזהה האפליקציה שלך מצוינים בהגדרות האפליקציה שלך. כדי להציג ולערוך את הגדרות האפליקציה שלך, עבור אל דף ההגדרות של פרויקט Firebase שלך ובחר באפליקציית iOS שלך.
ודא שפרויקט Firebase שלך מוגדר כהלכה לשימוש בקישורים דינמיים באפליקציית iOS שלך על ידי פתיחת קובץ ה-
apple-app-site-association
שמתארח בדומיין Dynamic Links שלך. Firebase ישרת את קובץ ה-apple-app-site-association
מהשורש של הדומיין וכן מספריית המשנה.well-known
. לדוגמה:https://example.com/apple-app-site-association https://example.com/.well-known/apple-app-site-association
אם האפליקציה שלך מחוברת, קובץ ה-
apple-app-site-association
מכיל הפניה לקידומת App ID ומזהה החבילה של האפליקציה שלך. לדוגמה:{"applinks":{"apps":[],"details":[{"appID":"1234567890.com.example.ios","paths":["/*"]}]}}
אם מאפיין
details
ריק, בדוק שוב שציינת את הקידומת של מזהה האפליקציה שלך. שים לב שייתכן שהקידומת של מזהה האפליקציה שלך לא תהיה זהה לזהות הצוות שלך.
הוסף את Firebase לאפליקציה שלך
- ייבא את מודול
FirebaseCore
ב-UIApplicationDelegate
שלך, כמו גם כל מודולי Firebase אחרים שנציג האפליקציה שלך משתמש בו. לדוגמה, כדי להשתמש ב-Cloud Firestore ובאימות:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
מָהִיר
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- הגדר מופע משותף
FirebaseApp
בשיטתapplication(_:didFinishLaunchingWithOptions:)
של נציג האפליקציה שלך:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
מָהִיר
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- אם אתה משתמש ב- SwiftUI, עליך ליצור נציג יישום ולצרף אותו למבנה
App
שלך באמצעותUIApplicationDelegateAdaptor
אוNSApplicationDelegateAdaptor
. עליך גם להשבית את העברת נציגי האפליקציה. למידע נוסף, עיין בהוראות של SwiftUI .SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
השתמש במסוף Firebase
אם אתה רוצה ליצור קישור דינמי יחיד, או למטרות בדיקה, או שצוות השיווק שלך יוכל ליצור קישור בקלות שניתן להשתמש בו במשהו כמו פוסט במדיה חברתית, הדרך הפשוטה ביותר תהיה לבקר במסוף Firebase וליצור אחד בצע את הטופס שלב אחר שלב באופן ידני.
השתמש ב- iOS Builder API
אתה יכול להשתמש ב- iOS Builder API כדי לבנות קישורים דינמיים מפרמטרים, או כדי לקצר קישור דינמי ארוך.
צור קישור דינמי מפרמטרים
כדי ליצור קישור דינמי, צור אובייקט DynamicLinkComponents
חדש וציין את הפרמטרים של קישור דינמי על ידי הגדרת המאפיינים המתאימים של האובייקט. לאחר מכן, קבל את הקישור הארוך ממאפיין url
של האובייקט או קבל את הקישור הקצר על ידי קריאת shorten()
.
הדוגמה המינימלית הבאה יוצרת קישור דינמי ארוך אל https://www.example.com/my-page
שנפתח עם אפליקציית iOS שלך ב-iOS והאפליקציה com.example.android
באנדרואיד:
מָהִיר
guard let link = URL(string: "https://www.example.com/my-page") else { return } let dynamicLinksDomainURIPrefix = "https://example.com/link" let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPRefix) linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.example.ios") linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.example.android") guard let longDynamicLink = linkBuilder.url else { return } print("The long URL is: \(longDynamicLink)")
Objective-C
NSURL *link = [[NSURL alloc] initWithString:@"https://www.example.com/my-page"]; NSString *dynamicLinksDomainURIPrefix = @"https://example.com/link"; FIRDynamicLinkComponents *linkBuilder = [[FIRDynamicLinkComponents alloc] initWithLink:link domainURIPrefix:dynamicLinksDomainURIPrefix]; linkBuilder.iOSParameters = [[FIRDynamicLinkIOSParameters alloc] initWithBundleID:@"com.example.ios"]; linkBuilder.androidParameters = [[FIRDynamicLinkAndroidParameters alloc] initWithPackageName:@"com.example.android"]; NSLog(@"The long URL is: %@", linkBuilder.url);
כדי ליצור קישור דינמי קצר, בנה DynamicLinkComponents
באותו אופן, ולאחר מכן קרא shorten()
.
בניית קישור קצר דורשת קריאת רשת, אז במקום להחזיר ישירות את הקישור, shorten()
מקבל מטפל השלמה, שנקרא כאשר הבקשה מסתיימת. לדוגמה:
מָהִיר
linkBuilder.shorten() { url, warnings, error in guard let url = url, error != nil else { return } print("The short URL is: \(url)") }
Objective-C
[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL, NSArray<NSString *> * _Nullable warnings, NSError * _Nullable error) { if (error || shortURL == nil) { return; } NSLog(@"The short URL is: %@", shortURL); }];
כברירת מחדל, קישורים דינמיים קצרים נוצרים עם סיומות קישור בנות 17 תווים שהופכות את זה לא סביר ביותר שמישהו יכול לנחש קישור דינמי חוקי. אם, למקרה השימוש שלך, אין שום נזק שמישהו יצליח לנחש קישור קצר, אולי תעדיף ליצור סיומות שהן רק כל עוד הדרוש כדי להיות ייחודיות, מה שאתה יכול לעשות על ידי הגדרת המאפיין dynamicLinkComponentsOptions
:
מָהִיר
linkBuilder.options = DynamicLinkComponentsOptions() linkBuilder.options.pathLength = .short linkBuilder.shorten() { url, warnings, error in guard let url = url, error != nil else { return } print("The short URL is: \(url)") }
Objective-C
linkBuilder.dynamicLinkComponentsOptions = [[FIRDynamicLinkComponentsOptions alloc] init]; linkBuilder.dynamicLinkComponentsOptions.pathLength = FIRShortDynamicLinkPathLengthShort; [linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL, NSArray<NSString *> * _Nullable warnings, NSError * _Nullable error) { if (error || shortURL == nil) { return; } NSLog(@"The short URL is: %@", shortURL); }];
פרמטרים של קישור דינמי
אתה יכול להשתמש בממשק ה-API של Dynamic Link Builder כדי ליצור קישורים דינמיים עם כל אחד מהפרמטרים הנתמכים. עיין בהפניה ל-API לפרטים.
הדוגמה הבאה יוצרת קישור דינמי עם מספר פרמטרים נפוצים:
מָהִיר
guard let link = URL(string: "https://www.example.com/my-page") else { return } let dynamicLinksDomainURIPrefix = "https://example.com/link" let linkBuilder = DynamicLinkComponents(link: link, domainURIPRefix: dynamicLinksDomainURIPrefix) linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.example.ios") linkBuilder.iOSParameters.appStoreID = "123456789" linkBuilder.iOSParameters.minimumAppVersion = "1.2.3" linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.example.android") linkBuilder.androidParameters.minimumVersion = 123 linkBuilder.analyticsParameters = DynamicLinkGoogleAnalyticsParameters(source: "orkut", medium: "social", campaign: "example-promo") linkBuilder.iTunesConnectParameters = DynamicLinkItunesConnectAnalyticsParameters() linkBuilder.iTunesConnectParameters.providerToken = "123456" linkBuilder.iTunesConnectParameters.campaignToken = "example-promo" linkBuilder.socialMetaTagParameters = DynamicLinkSocialMetaTagParameters() linkBuilder.socialMetaTagParameters.title = "Example of a Dynamic Link" linkBuilder.socialMetaTagParameters.descriptionText = "This link works whether the app is installed or not!" linkBuilder.socialMetaTagParameters.imageURL = "https://www.example.com/my-image.jpg" guard let longDynamicLink = linkBuilder.url else { return } print("The long URL is: \(longDynamicLink)")
Objective-C
NSURL *link = [[NSURL alloc] initWithString:@"https://www.example.com/my-page"]; NSString *dynamicLinksDomainURIPrefix = @"https://example.com/link"; FIRDynamicLinkComponents *linkBuilder = [[FIRDynamicLinkComponents alloc] initWithLink:link domainURIPrefix:dynamicLinksDomainURIPrefix]; linkBuilder.iOSParameters = [[FIRDynamicLinkIOSParameters alloc] initWithBundleID:@"com.example.ios"]; linkBuilder.iOSParameters.appStoreID = @"123456789"; linkBuilder.iOSParameters.minimumAppVersion = @"1.2.3"; linkBuilder.androidParameters = [[FIRDynamicLinkAndroidParameters alloc] initWithPackageName:@"com.example.android"]; linkBuilder.androidParameters.minimumVersion = 123; linkBuilder.analyticsParameters = [[FIRDynamicLinkGoogleAnalyticsParameters alloc] initWithSource:@"orkut" medium:@"social" campaign:@"example-promo"]; linkBuilder.iTunesConnectParameters = [[FIRDynamicLinkItunesConnectAnalyticsParameters alloc] init]; linkBuilder.iTunesConnectParameters.providerToken = @"123456"; linkBuilder.iTunesConnectParameters.campaignToken = @"example-promo"; linkBuilder.socialMetaTagParameters = [[FIRDynamicLinkSocialMetaTagParameters alloc] init]; linkBuilder.socialMetaTagParameters.title = @"Example of a Dynamic Link"; linkBuilder.socialMetaTagParameters.descriptionText = @"This link works whether the app is installed or not!"; linkBuilder.socialMetaTagParameters.imageURL = @"https://www.example.com/my-image.jpg"; NSLog(@"The long URL is: %@", linkBuilder.url);
ניתן להגדיר פרמטרים של קישור דינמי עם האובייקטים והמאפיינים הבאים:
DynamicLinkComponents | |
---|---|
קישור | הקישור שהאפליקציה שלך תיפתח. ציין כתובת אתר שהאפליקציה שלך יכולה לטפל בה, בדרך כלל התוכן או המטען של האפליקציה, אשר יוזמת היגיון ספציפי לאפליקציה (כגון זיכוי של המשתמש בקופון או הצגת מסך פתיחה). קישור זה חייב להיות כתובת אתר בפורמט היטב, מקודד כראוי של כתובת אתר, להשתמש ב-HTTP או ב-HTTPS, ולא יכול להיות קישור דינמי אחר. |
domainURIPrefix | קידומת כתובת האתר של קישור דינמי, שתוכל למצוא במסוף Firebase. תחום קישור דינמי נראה כמו הדוגמאות הבאות: https://example.com/link https://example.page.link |
DynamicLinkAndroidParameters | |
---|---|
כתובת אתר חוזרת | הקישור שייפתח כשהאפליקציה לא מותקנת. ציין זאת כדי לעשות משהו אחר מלבד התקנת האפליקציה שלך מחנות Play כאשר האפליקציה אינה מותקנת, כגון פתיחת גרסת האינטרנט לנייד של התוכן, או הצגת דף קידום מכירות עבור האפליקציה שלך. |
minimumVersion | versionCode של הגרסה המינימלית של האפליקציה שלך שיכולה לפתוח את הקישור. אם האפליקציה המותקנת היא גרסה ישנה יותר, המשתמש מועבר לחנות Play כדי לשדרג את האפליקציה. |
DynamicLinkIOSParameters | |
---|---|
appStoreID | מזהה ה-App Store של האפליקציה שלך, המשמש לשליחת משתמשים ל-App Store כאשר האפליקציה לא מותקנת |
כתובת אתר חוזרת | הקישור שייפתח כשהאפליקציה לא מותקנת. ציין זאת כדי לעשות משהו אחר מלבד התקנת האפליקציה שלך מ-App Store כאשר האפליקציה אינה מותקנת, כגון פתיחת גרסת האינטרנט לנייד של התוכן, או הצגת דף קידום מכירות עבור האפליקציה שלך. |
CustomScheme | סכימת כתובת האתר המותאמת אישית של האפליקציה שלך, אם היא מוגדרת כמשהו אחר מאשר מזהה החבילה של האפליקציה שלך |
iPadFallbackURL | הקישור לפתיחה באייפד כשהאפליקציה לא מותקנת. ציין זאת כדי לעשות משהו אחר מלבד התקנת האפליקציה שלך מ-App Store כאשר האפליקציה אינה מותקנת, כגון לפתוח את גרסת האינטרנט של התוכן, או להציג דף קידום מכירות עבור האפליקציה שלך. |
iPadBundleID | מזהה החבילה של אפליקציית iOS לשימוש באייפד לפתיחת הקישור. האפליקציה חייבת להיות מחוברת לפרויקט שלך מדף הסקירה הכללית של מסוף Firebase. |
minimumAppVersion | מספר הגרסה של הגרסה המינימלית של האפליקציה שלך שיכולה לפתוח את הקישור. הדגל הזה מועבר לאפליקציה שלך כאשר היא נפתחת, והאפליקציה שלך חייבת להחליט מה לעשות איתה. |
DynamicLinkNavigationInfoParameters | |
---|---|
ForcedRedirectEnabled | אם מוגדר ל'1', דלג על דף התצוגה המקדימה של האפליקציה כאשר הקישור הדינמי נפתח, ובמקום זאת הפנה מחדש לאפליקציה או לחנות. דף התצוגה המקדימה של האפליקציה (מופעל כברירת מחדל) יכול לשלוח משתמשים בצורה מהימנה יותר ליעד המתאים ביותר כאשר הם פותחים קישורים דינמיים באפליקציות; עם זאת, אם אתה מצפה שקישור דינמי ייפתח רק באפליקציות שיכולות לפתוח קישורים דינמיים בצורה מהימנה ללא דף זה, תוכל להשבית אותו עם פרמטר זה. פרמטר זה ישפיע על התנהגות הקישור הדינמי רק ב-iOS. |
DynamicLinkSocialMetaTagParameters | |
---|---|
כותרת | הכותרת לשימוש כאשר הקישור הדינמי משותף בפוסט חברתי. |
תיאורטקסט | התיאור לשימוש כאשר הקישור הדינמי משותף בפוסט חברתי. |
כתובת אתר של תמונה | כתובת האתר לתמונה הקשורה לקישור הזה. התמונה צריכה להיות לפחות 300x200 פיקסלים, ופחות מ-300 KB. |
DynamicLinkGoogleAnalyticsParameters | |
---|---|
מָקוֹר בינוני קמפיין טווח תוֹכֶן | פרמטרי ניתוח של Google Play. פרמטרים אלה ( utm_source , utm_medium , utm_campaign , utm_term , utm_content ) מועברים לחנות Play וכן מצורפים למטען הקישור. |
DynamicLinkItunesConnectAnalyticsParameters | |
---|---|
providerToken affiliateToken campaignToken | פרמטרי ניתוח של iTunes Connect. פרמטרים אלו ( pt , at , ct ) מועברים ל-App Store. |
קצר קישור דינמי ארוך
כדי לקצר קישור דינמי ארוך, העבר את הקישור הדינמי הארוך אל shortenURL(url:options:)
יחד עם אובייקט DynamicLinkComponentsOptions
אם ברצונך ליצור קישור עם סיומת קצרה:
מָהִיר
DynamicLinkComponents.shortenURL(url: longLinkUrl, options: nil) { url, warnings, error in guard let url = url, error != nil else { return } print("The short URL is: \(url)") }
Objective-C
[FIRDynamicLinkComponents shortenURL:longLinkUrl options:nil completion:^(NSURL * _Nullable shortURL, NSArray<NSString *> * _Nullable warnings, NSError * _Nullable error) { if (error || shortURL == nil) { return; } NSLog(@"The short URL is: %@", shortURL); }];
ציון סכימת כתובת URL מותאמת אישית עבור קישורים דינמיים
כברירת מחדל, Dynamic Links משתמש במזהה החבילה של האפליקציה שלך בתור ערכת כתובת האתר הדרושה לפתיחת האפליקציה שלך. אנו ממליצים להישאר עם ערך ברירת המחדל הזה כדי שהיישום שלך יהיה פשוט.
עם זאת, מפתחים שכבר משתמשים בסכימת כתובת URL מותאמת אישית למטרות אחרות עשויים לרצות להשתמש באותה סכימת כתובת URL מותאמת אישית גם עבור הקישורים הדינמיים שלהם. אם אתה במצב זה, תוכל לציין סכימת כתובת URL אחרת עבור הקישורים הדינמיים של Firebase על ידי ביצוע השלבים הבאים:
- בעת הגדרת האפליקציה שלך, הקפד לציין את ערכת ברירת המחדל של כתובת האתר שתשמש את האפליקציה שלך לפני שתגדיר את המופע המשותף שלך
FirebaseApp
:מָהִיר
הערה: מוצר Firebase זה אינו זמין ביעדי macOS, Mac Catalyst, tvOS או watchOS.func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication .LaunchOptionsKey: Any]?) -> Bool { // Set deepLinkURLScheme to the custom URL scheme you defined in your // Xcode project. FirebaseOptions.defaultOptions()?.deepLinkURLScheme = customURLScheme FirebaseApp.configure() return true }
Objective-C
הערה: מוצר Firebase זה אינו זמין ביעדי macOS, Mac Catalyst, tvOS או watchOS.- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Set deepLinkURLScheme to the custom URL scheme you defined in your // Xcode project. [FIROptions defaultOptions].deepLinkURLScheme = CUSTOM_URL_SCHEME; [FIRApp configure]; return YES; }
- בכל פעם שאתה יוצר קישור דינמי כלשהו, תצטרך לציין את ערכת כתובת האתר המותאמת אישית שבה משתמשת האפליקציה שלך. אתה יכול לעשות זאת דרך מסוף Firebase, להגדיר את ה-
customScheme
ב-Builder API, לציין את הפרמטרius
ב-URL שלך, או לשלוח את הפרמטרiosCustomScheme
ל-REST API
הצעדים הבאים
כעת לאחר שיצרת קישורים דינמיים, עליך להגדיר את האפליקציה שלך כדי לקבל קישורים דינמיים ולשלוח משתמשים למקום הנכון באפליקציה שלך לאחר שמשתמש יפתח אותם.
כדי לקבל קישורים דינמיים באפליקציה שלך, עיין בתיעוד עבור iOS , Android , C++ ו- Unity .