Google is committed to advancing racial equity for Black communities. See how.
דף זה תורגם על ידי Cloud Translation API.
Switch to English

צור קישורים דינמיים ב- iOS

ניתן ליצור קישורים דינמיים קצרים או ארוכים באמצעות ממשק ה- API לבניית קישורים דינמיים של Firebase. ממשק API זה מקבל קישור דינמי ארוך או אובייקט המכיל פרמטרים של קישור דינמי ומחזיר כתובות אתרים כמו הדוגמאות הבאות:

https://example.com/link/WXYZ
https://example.page.link/WXYZ

תנאים מוקדמים

קישורים דינמיים של Firebase דורשים iOS 8 ואילך. אתה יכול למקד ל- iOS 7 באפליקציה שלך, אך שיחות SDK של Firebase Dynamic Links פועלות רק באפליקציות שמריצות iOS 8 ומעלה.

  1. הוסף את Firebase לפרויקט ה- iOS שלך . כלול את הפוד הבא Podfile שלך:
    pod 'Firebase/Analytics'
    pod 'Firebase/DynamicLinks'
        
  2. הפעל pod install ופתח את קובץ ה- .xcworkspace שנוצר.
  3. במסוף Firebase, פתח את הקטע קישורים דינמיים .
  4. אם עדיין לא קיבלת את תנאי השירות והגדרת קידומת URI לקישורים הדינמיים שלך, עשה זאת כשתתבקש לעשות זאת.

    אם כבר יש לך קידומת URI של קישורים דינמיים, שים לב אליה. אתה צריך לספק את זה בעת יצירת תוכניות קישורים דינמיים.

  5. מומלץ : ציין את דפוסי ה- URL המותרים בקישורים העמוקים ובקישורי ה- fallback. בכך אתה מונע מגורמים בלתי מורשים ליצור קישורים דינמיים המפנים מחדש מהדומיין שלך לאתרים שאינך שולט בהם. ראה דפוסי כתובות אתרים לרשימת היתרים .
  6. ודא שמזהה האפליקציה של App Store שלך ​​וקידומת מזהה היישום שלך מוגדרים בהגדרות האפליקציה שלך. כדי להציג ולערוך את הגדרות האפליקציה שלך, עבור לדף ההגדרות של פרויקט Firebase ובחר באפליקציית iOS שלך.

    ודא שפרוייקט Firebase שלך ​​מוגדר כראוי לשימוש בקישורים דינמיים באפליקציית iOS שלך על ידי פתיחת הקובץ apple-app-site-association , שמתארח בתחום הקישורים הדינמיים שלך. 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 מכיל התייחסות לקידומת מזהה האפליקציה של היישום שלך ומזהה החבילה. לדוגמה:

    {"applinks":{"apps":[],"details":[{"appID":"1234567890.com.example.ios","paths":["/*"]}]}}

    אם מאפיין details ריק, בדוק שוב שציינת את קידומת מזהה היישום שלך. שים לב שקידומת מזהה האפליקציה שלך עשויה שלא להיות זהה למזהה הצוות שלך.

הוסף את Firebase לאפליקציה שלך

  1. ייבא את מודול Firebase ל- UIApplicationDelegate שלך:

    מָהִיר

    import Firebase

    מטרה-ג

    @import Firebase;
  2. הגדר תצורה של מופע משותף של FirebaseApp , בדרך כלל ביישום האפליקציה שלך application:didFinishLaunchingWithOptions: method:

    מָהִיר

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    מטרה-ג

    // Use Firebase library to configure APIs
    [FIRApp configure];

השתמש במסוף 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)")

מטרה-ג

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)")
}

מטרה-ג

[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.dynamicLinkComponentsOptions = DynamicLinkComponentsOptions()
linkBuilder.dynamicLinkComponentsOptions.pathLength = .short
linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

מטרה-ג

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 של בניית קישורים דינמיים כדי ליצור קישורים דינמיים עם כל אחד מהפרמטרים הנתמכים. לפרטים, עיין בהפניה ל- 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)")

מטרה-ג

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
קישור

הקישור שהאפליקציה שלך תפתח. ציין כתובת URL שהאפליקציה שלך יכולה לטפל בה, בדרך כלל תוכן האפליקציה או מטען המטען שלה, היוזם היגיון ספציפי לאפליקציה (כגון זיכוי המשתמש בקופון או הצגת מסך קבלת פנים). קישור זה חייב להיות כתובת אתר מעוצבת היטב, להיות מקודד כהלכה, להשתמש ב- HTTP או HTTPS ולא יכול להיות קישור דינמי אחר.

domainURIPrefix קידומת ה- URL של קישור דינמי שלך, שתוכל למצוא במסוף Firebase. תחום קישור דינמי נראה כמו הדוגמאות הבאות:
https://example.com/link
https://example.page.link
DynamicLinkAndroidParameters
fallbackURL הקישור לפתיחה כאשר האפליקציה לא מותקנת. ציין זאת כדי לעשות משהו אחר מלבד להתקין את האפליקציה שלך מחנות Play כאשר האפליקציה לא מותקנת, כמו לפתוח את גרסת האינטרנט הנייד של התוכן, או להציג דף קידום מכירות עבור האפליקציה שלך.
מינימום גרסה versionCode של הגרסה המינימאלית של האפליקציה שלך שיכול לפתוח את הקישור. אם האפליקציה המותקנת היא גרסה ישנה יותר, המשתמש מועבר לחנות Play כדי לשדרג את האפליקציה.
DynamicLinkIOSParameters
appStoreID מזהה האפליקציה של האפליקציה שלך, משמש לשליחת משתמשים לחנות האפליקציות כאשר האפליקציה לא מותקנת
fallbackURL הקישור לפתיחה כאשר האפליקציה לא מותקנת. ציין זאת כדי לעשות משהו אחר מלבד להתקין את האפליקציה שלך מחנות האפליקציות כאשר האפליקציה לא מותקנת, כגון לפתוח את גרסת האינטרנט הנייד של התוכן, או להציג דף קידום מכירות עבור האפליקציה שלך.
customScheme תוכנית ה- URL המותאמת אישית של האפליקציה שלך, אם מוגדרת כמשהו שאינו מזהה החבילה של האפליקציה שלך
iPadFallbackURL הקישור לפתיחה באייפדים כשהאפליקציה לא מותקנת. ציין זאת כדי לעשות משהו אחר מלבד להתקין את האפליקציה שלך מחנות האפליקציות כאשר האפליקציה לא מותקנת, כגון לפתוח את גרסת האינטרנט של התוכן, או להציג דף קידום מכירות עבור האפליקציה שלך.
iPadBundleID מזהה הצרור של אפליקציית iOS לשימוש באייפדים כדי לפתוח את הקישור. על האפליקציה להיות מחוברת לפרויקט שלך מדף הסקירה הכללית של קונסולת Firebase.
minimumAppVersion מספר הגרסה של הגרסה המינימלית של האפליקציה שלך שיכולה לפתוח את הקישור. דגל זה מועבר לאפליקציה שלך כאשר היא נפתחת, ועל האפליקציה שלך להחליט מה לעשות איתה.
DynamicLinkNavigationInfoParameters
compulsRedirectEnabled אם מוגדר ל- '1', דלג על דף התצוגה המקדימה של האפליקציה כאשר הקישור הדינמי נפתח, ובמקום זאת להפנות מחדש לאפליקציה או לחנות. דף התצוגה המקדימה של האפליקציה (מופעל כברירת מחדל) יכול לשלוח משתמשים בצורה יעילה יותר ליעד המתאים ביותר כאשר הם פותחים קישורים דינמיים באפליקציות; עם זאת, אם אתה מצפה שייפתח קישור דינמי רק באפליקציות שיכולות לפתוח קישורים דינמיים באופן אמין ללא דף זה, תוכל להשבית אותו באמצעות פרמטר זה. הערה: דף התצוגה המקדימה של האפליקציה מוצג כרגע רק ב- iOS, אך ייתכן שבסופו של דבר יוצג ב- Android. פרמטר זה ישפיע על התנהגות הקישור הדינמי בשתי הפלטפורמות.
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 ) מועברים לחנות האפליקציות.

כדי לקצר קישור דינמי ארוך, העבירו את הקישור הדינמי הארוך ל- 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)")
}

מטרה-ג

[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 הדרושה לפתיחת היישום שלך. אנו ממליצים להישאר עם ערך ברירת המחדל הזה כדי לשמור על הפשטת היישום שלך.

עם זאת, מפתחים שכבר משתמשים בתכנית כתובות אתרים מותאמות אישית למטרות אחרות עשויים לרצות להשתמש באותה ערכת כתובות אתרים מותאמות אישית גם עבור הקישורים הדינמיים שלהם. אם אתה במצב זה, תוכל לציין ערכת כתובות אתרים אחרת עבור הקישורים הדינמיים של Firebase על ידי ביצוע השלבים הבאים:

  1. בעת הגדרת האפליקציה שלך, הקפד לציין את ערכת כתובת האתר המוגדרת כברירת מחדל לשימוש היישום שלך לפני שתגדיר את המופע המשותף של FirebaseApp :

    מָהִיר

    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 = self.customURLScheme
      FirebaseApp.configure()
    
      return true
    }

    מטרה-ג

    - (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;
    }
  2. בכל פעם שאתה יוצר קישור דינמי כלשהו, ​​יהיה עליך לציין את תוכנית ה- URL המותאמת אישית שבה היישום שלך משתמש. אתה יכול לעשות זאת דרך קונסולת Firebase, הגדרת ה- customScheme ב- API של Builder, ציון הפרמטר ius בכתובת האתר שלך, או שליחת הפרמטר iosCustomScheme ל- REST API

הצעדים הבאים

כעת, לאחר שיצרת קישורים דינמיים, עליך להגדיר את האפליקציה שלך לקבלת קישורים דינמיים ולשלוח משתמשים למקום הנכון באפליקציה לאחר שמשתמש פותח אותם.

לקבלת קישורים דינמיים באפליקציה שלך, עיין בתיעוד עבור iOS , Android , C ++ ואחדות .