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 באפליקציה שלך, אבל Firebase Dynamic Links SDK שיחות מתפקדות רק ביישומים עם iOS 8 ומעלה.

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

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

  5. מומלץ : ציין את דפוסי ה- URL המותרים בקישורים העמוקים ובקישורי ה- Fallback שלך. בכך אתה מונע מגורמים לא מורשים ליצור קישורים דינמיים המפנים מהדומיין שלך לאתרים שאינך שולט בהם. עיין בתבניות URL של רשימת ההיתרים .
  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 מכיל התייחסות למזהה App Store ולמזהה הצרור של האפליקציה שלך. לדוגמה:

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

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

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

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

    מָהִיר

    import Firebase

    מטרה-ג

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

    מָהִיר

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

    מטרה-ג

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

השתמש במסוף Firebase

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

השתמש בממשק API לבניית iOS

אתה יכול להשתמש בממשק ה- API של Builder iOS כדי לבנות קישורים דינמיים מפרמטרים, או כדי לקצר קישור דינמי ארוך.

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

מטרה-ג

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 של קישור דינמי, שתוכלו למצוא במסוף האש. תחום קישור דינמי נראה כמו הדוגמאות הבאות:
https://example.com/link
https://example.page.link
פרמטרים של DynamicLinkAndroid
fallbackURL הקישור שייפתח כאשר האפליקציה אינה מותקנת. ציין זאת כדי לעשות משהו אחר מלבד להתקין את האפליקציה שלך מחנות Play כאשר האפליקציה אינה מותקנת, כגון פתיחת גרסת האינטרנט לנייד של התוכן, או הצגת דף קידום מכירות עבור האפליקציה שלך.
גרסת מינימום versionCode של הגרסה המינימאלית של האפליקציה שלך שיכול לפתוח את הקישור. אם האפליקציה המותקנת היא גרסה ישנה יותר, המשתמש מועבר לחנות Play כדי לשדרג את האפליקציה.
פרמטרים דינמיים
appStoreID מזהה ה- App Store של האפליקציה שלך, משמש לשליחת משתמשים לחנות האפליקציות כאשר האפליקציה אינה מותקנת
fallbackURL הקישור שייפתח כאשר האפליקציה אינה מותקנת. ציין זאת כדי לעשות משהו אחר מלבד להתקין את האפליקציה שלך מחנות האפליקציות כאשר האפליקציה אינה מותקנת, כגון פתיחת גרסת האינטרנט לנייד של התוכן, או הצגת דף קידום מכירות עבור האפליקציה שלך.
מותאם אישית ערכת ה- URL המותאמת אישית של האפליקציה שלך, אם היא מוגדרת כמשהו שאינו מזהה הצרור של האפליקציה
iPadFallbackURL הקישור לפתיחה באייפד כאשר האפליקציה אינה מותקנת. ציין זאת כדי לעשות משהו אחר מלבד להתקין את האפליקציה שלך מחנות האפליקציות כאשר האפליקציה אינה מותקנת, כגון פתיחת גרסת האינטרנט של התוכן, או הצגת דף קידום מכירות עבור האפליקציה שלך.
iPadBundleID מזהה הצרור של אפליקציית iOS לשימוש ב- iPad לפתיחת הקישור. האפליקציה חייבת להיות מחוברת לפרוייקט שלך מהדף סקירה כללית במסוף האש.
minimumAppVersion מספר הגרסה של הגרסה המינימלית של האפליקציה שלך שיכולה לפתוח את הקישור. דגל זה מועבר לאפליקציה שלך עם פתיחתה, והאפליקציה שלך צריכה להחליט מה לעשות איתה.
פרמטרים של DynamicLinkNavigationInfoParameters
כפוי אם מוגדר כ- '1', דלג על דף התצוגה המקדימה של האפליקציה עם פתיחת הקישור הדינמי ובמקומו הפנה לאפליקציה או לחנות. דף התצוגה המקדימה של האפליקציה (מופעל כברירת מחדל) יכול לשלוח משתמשים בצורה אמינה יותר ליעד המתאים ביותר כאשר הם פותחים קישורים דינמיים באפליקציות; עם זאת, אם אתה מצפה שקישור דינמי ייפתח רק באפליקציות שיכולות לפתוח קישורים דינמיים בצורה אמינה ללא דף זה, תוכל להשבית אותו באמצעות פרמטר זה. הערה: דף התצוגה המקדימה של האפליקציה מוצג רק ב- iOS כרגע, אך בסופו של דבר עשוי להופיע באנדרואיד. פרמטר זה ישפיע על התנהגות הקישור הדינמי בשתי הפלטפורמות.
פרמטרים של DynamicLinkSocialMetaTag
כותרת הכותרת לשימוש כאשר הקישור הדינמי משותף בפוסט חברתי.
תיאור טקסט התיאור שישמש כשמשותף את הקישור הדינמי בפוסט חברתי.
כתובת אתר של תמונה כתובת האתר לתמונה הקשורה לקישור זה. התמונה צריכה להיות לפחות 300x200 פיקסלים, ופחות מ- 300 KB.
פרמטרים של DynamicLinkGoogleAnalytics
מָקוֹר
בינוני
קמפיין
טווח
תוֹכֶן
פרמטרים אנליטיים של Google Play. פרמטרים אלה ( utm_source , utm_medium , utm_campaign , utm_term , utm_content ) מועברים לחנות Play וכן מצורפים לטעינה של הקישור.
DynamicLinkItunesConnectAnalytics פרמטרים
ספק אסימון
שותפים אסימון
מסע פרסום
פרמטרים אנליטיים של 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 הדרושה לפתיחת היישום שלך. אנו ממליצים להישאר עם ערך ברירת מחדל זה כדי לשמור על יישום פשוט.

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

  1. בעת הגדרת האפליקציה שלך, וודא שאתה מציין את ערכת ה- URL של ברירת המחדל שתשמש את האפליקציה שלך לפני שתגדיר את המופע המשותף של 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

הצעדים הבאים

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

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