Catch up on everthing we announced at this year's Firebase Summit. Learn more

Tạo liên kết động trên iOS

Bạn có thể tạo Liên kết động ngắn hoặc dài bằng API trình tạo liên kết động Firebase. API này chấp nhận một Liên kết động dài hoặc một đối tượng có chứa các tham số Liên kết động và trả về các URL như các ví dụ sau:

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

Điều kiện tiên quyết

Trước khi bắt đầu, hãy chắc chắn để thêm căn cứ hỏa lực cho dự án iOS của bạn .

Sử dụng Trình quản lý gói Swift để cài đặt và quản lý các phần phụ thuộc của Firebase.

  1. Trong Xcode, với dự án ứng dụng của bạn mở, điều hướng tới File> Swift gói> Thêm gói phụ thuộc.
  2. Khi được nhắc, hãy thêm kho lưu trữ SDK nền tảng Apple Firebase:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. Chọn thư viện Liên kết động.
  5. Đối với một kinh nghiệm tối ưu với Dynamic Links, chúng tôi đề nghị cho phép Google Analytics trong dự án căn cứ hỏa lực của bạn và thêm SDK căn cứ hỏa lực cho Google Analytics để ứng dụng của bạn. Bạn có thể chọn thư viện không có bộ sưu tập IDFA hoặc có bộ sưu tập IDFA.
  6. Khi hoàn tất, Xcode sẽ tự động bắt đầu giải quyết và tải xuống các phần phụ thuộc của bạn trong nền.

Bây giờ, hãy thực hiện một số bước cấu hình:

  1. Trong căn cứ hỏa lực console, hãy mở phần động Links.
  2. Nếu bạn chưa chấp nhận các điều khoản dịch vụ và đặt tiền tố URI cho Liên kết động của mình, hãy làm như vậy khi được nhắc.

    Nếu bạn đã có tiền tố URI liên kết động, hãy ghi chú lại nó. Bạn cần cung cấp nó khi tạo Liên kết động theo lập trình.

  3. Khuyến cáo: Chỉ định các mẫu URL cho phép trong các liên kết sâu và liên kết dự phòng. Bằng cách đó, bạn ngăn các bên trái phép tạo Liên kết động chuyển hướng từ miền của bạn đến các trang web mà bạn không kiểm soát. Xem Allow mẫu URL cụ thể .
  4. Đảm bảo rằng ID cửa hàng ứng dụng của ứng dụng và tiền tố ID ứng dụng của bạn được chỉ định trong cài đặt ứng dụng của bạn. Để xem và chỉnh sửa các thiết lập của ứng dụng của bạn, hãy cho dự án căn cứ hỏa lực của bạn trang Cài đặt và chọn ứng dụng iOS của bạn.

    Xác nhận rằng dự án căn cứ hỏa lực của bạn được cấu hình đúng cách để sử dụng động liên kết trong ứng dụng iOS của bạn bằng cách mở apple-app-site-association tập tin được lưu trữ trên miền động Liên kết của bạn. Căn cứ hỏa lực sẽ phục vụ apple-app-site-association tập tin từ thư mục gốc của tên miền cũng như .well-known thư mục con. Ví dụ:

        https://example.com/apple-app-site-association
        https://example.com/.well-known/apple-app-site-association
        

    Nếu ứng dụng của bạn được kết nối, apple-app-site-association tập tin chứa một tham chiếu đến App ID prefix của ứng dụng rồi bó ID. Ví dụ:

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

    Nếu details tài sản là trống rỗng, kích đúp séc mà bạn chỉ định tiền tố App ID của bạn. Lưu ý rằng tiền tố ID ứng dụng của bạn có thể không giống với ID nhóm của bạn.

Thêm Firebase vào ứng dụng của bạn

  1. Nhập module căn cứ hỏa lực trong bạn UIApplicationDelegate :

    Nhanh

    import Firebase

    Objective-C

    @import Firebase;
  2. Cấu hình một FirebaseApp chia sẻ Ví dụ, điển hình là trong ứng dụng của bạn application:didFinishLaunchingWithOptions: phương pháp:

    Nhanh

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

    Objective-C

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

Sử dụng bảng điều khiển Firebase

Nếu bạn muốn tạo một Dynamic Link duy nhất, hoặc cho mục đích thử nghiệm, hoặc cho đội ngũ tiếp thị của bạn dễ dàng tạo ra một liên kết có thể được sử dụng trong một cái gì đó giống như một bài truyền thông xã hội, cách đơn giản nhất sẽ đến thăm các căn cứ hỏa lực console và tạo một theo cách thủ công theo biểu mẫu từng bước.

Sử dụng API trình tạo iOS

Bạn có thể sử dụng API trình tạo iOS để tạo Liên kết động từ các tham số hoặc để rút ngắn một Liên kết động dài.

Để tạo một liên kết động, tạo ra một mới DynamicLinkComponents đối tượng và xác định các thông số Dynamic Link bằng cách thiết lập thuộc tính tương ứng của đối tượng. Sau đó, có được liên kết từ lâu của đối tượng url tài sản hoặc được liên kết ngắn bằng cách gọi shorten() .

Ví dụ tối thiểu sau tạo một Dynamic Link dài để https://www.example.com/my-page mở ra với ứng dụng iOS của bạn trên iOS và ứng dụng com.example.android trên Android:

Nhanh

Lưu ý: sản phẩm căn cứ hỏa lực này không có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS, hoặc mục tiêu watchos.
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

Lưu ý: sản phẩm căn cứ hỏa lực này không có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS, hoặc mục tiêu watchos.
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);

Để tạo một liên kết động ngắn, xây dựng một DynamicLinkComponents theo cùng một cách, và sau đó gọi shorten() .

Xây dựng một liên kết ngắn đòi hỏi một cuộc gọi mạng, vì vậy thay vì trực tiếp trả lại liên kết, shorten() chấp nhận một handler hoàn thành, được gọi là khi hoàn thành yêu cầu. Ví dụ:

Nhanh

Lưu ý: sản phẩm căn cứ hỏa lực này không có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS, hoặc mục tiêu watchos.
linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

Objective-C

Lưu ý: sản phẩm căn cứ hỏa lực này không có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS, hoặc mục tiêu watchos.
[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL,
                                     NSArray<NSString *> * _Nullable warnings,
                                     NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];
      

Theo mặc định, các Liên kết động ngắn được tạo với các hậu tố liên kết gồm 17 ký tự khiến cho việc ai đó có thể đoán được một Liên kết động hợp lệ là rất khó. Nếu, đối với trường hợp sử dụng của bạn, không có hại trong một ai đó đoán thành công một liên kết ngắn, bạn có thể thích để tạo ra hậu tố mà chỉ là chừng nào còn cần phải là duy nhất mà bạn có thể làm bằng cách thiết lập dynamicLinkComponentsOptions bất động sản:

Nhanh

Lưu ý: sản phẩm căn cứ hỏa lực này không có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS, hoặc mục tiêu watchos.
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

Lưu ý: sản phẩm căn cứ hỏa lực này không có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS, hoặc mục tiêu watchos.
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);
}];
      

Bạn có thể sử dụng API trình tạo liên kết động để tạo Liên kết động với bất kỳ thông số nào được hỗ trợ. Xem các tài liệu tham khảo API để biết chi tiết.

Ví dụ sau tạo Liên kết động với một số thông số phổ biến được đặt:

Nhanh

Lưu ý: sản phẩm căn cứ hỏa lực này không có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS, hoặc mục tiêu watchos.
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

Lưu ý: sản phẩm căn cứ hỏa lực này không có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS, hoặc mục tiêu watchos.
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);

Bạn có thể đặt thông số Liên kết động với các đối tượng và thuộc tính sau:

DynamicLinkComponents
liên kết

Liên kết ứng dụng của bạn sẽ mở ra. Chỉ định URL mà ứng dụng của bạn có thể xử lý, thường là nội dung hoặc trọng tải của ứng dụng, bắt đầu logic dành riêng cho ứng dụng (chẳng hạn như ghi có cho người dùng bằng phiếu giảm giá hoặc hiển thị màn hình chào mừng). Liên kết này phải là một URL được định dạng tốt, được mã hóa URL đúng cách, sử dụng HTTP hoặc HTTPS và không thể là một Liên kết động khác.

domainURIPrefix Tiền tố URL liên kết động của bạn, bạn có thể tìm thấy tiền tố này trong bảng điều khiển Firebase. Một Dynamic Link vẻ miền như các ví dụ sau:
https://example.com/link
https://example.page.link
DynamicLinkAndroidParameters
dự phòngURL Liên kết để mở khi ứng dụng chưa được cài đặt. Chỉ định điều này để làm điều gì đó khác ngoài cài đặt ứng dụng của bạn từ Cửa hàng Play khi ứng dụng chưa được cài đặt, chẳng hạn như mở phiên bản web di động của nội dung hoặc hiển thị trang quảng cáo cho ứng dụng của bạn.
tối thiểu Các versionCode của phiên bản tối thiểu của ứng dụng của bạn có thể mở liên kết. Nếu ứng dụng đã cài đặt là phiên bản cũ hơn, người dùng sẽ được đưa đến Cửa hàng Play để nâng cấp ứng dụng.
DynamicLinkIOSParameters
appStoreID ID App Store của ứng dụng của bạn, được sử dụng để đưa người dùng đến App Store khi ứng dụng chưa được cài đặt
dự phòngURL Liên kết để mở khi ứng dụng chưa được cài đặt. Chỉ định điều này để làm điều gì đó khác ngoài cài đặt ứng dụng của bạn từ App Store khi ứng dụng chưa được cài đặt, chẳng hạn như mở phiên bản web di động của nội dung hoặc hiển thị trang quảng cáo cho ứng dụng của bạn.
customScheme Lược đồ URL tùy chỉnh của ứng dụng của bạn, nếu được xác định là thứ gì đó khác với ID gói ứng dụng của bạn
iPadFallbackURL Liên kết để mở trên iPad khi ứng dụng chưa được cài đặt. Chỉ định điều này để làm điều gì đó khác ngoài cài đặt ứng dụng của bạn từ App Store khi ứng dụng chưa được cài đặt, chẳng hạn như mở phiên bản web của nội dung hoặc hiển thị trang quảng cáo cho ứng dụng của bạn.
iPadBundleID ID gói của ứng dụng iOS sử dụng trên iPad để mở liên kết. Ứng dụng phải được kết nối với dự án của bạn từ Trang tổng quan của bảng điều khiển Firebase.
tối thiểuAppVersion Các số phiên bản của phiên bản tối thiểu của ứng dụng của bạn có thể mở liên kết. Cờ này được chuyển tới ứng dụng của bạn khi nó được mở và ứng dụng của bạn phải quyết định phải làm gì với nó.
DynamicLinkNavigationInfoParameters
cedRedirectEnabled Nếu được đặt thành '1', hãy bỏ qua trang xem trước ứng dụng khi Liên kết động được mở và thay vào đó chuyển hướng đến ứng dụng hoặc cửa hàng. Trang xem trước ứng dụng (được bật theo mặc định) có thể đưa người dùng đến đích thích hợp hơn một cách đáng tin cậy hơn khi họ mở Liên kết động trong ứng dụng; tuy nhiên, nếu bạn mong đợi một Liên kết động chỉ được mở trong các ứng dụng có thể mở Liên kết động một cách đáng tin cậy mà không có trang này, bạn có thể tắt nó bằng tham số này. Tham số này sẽ chỉ ảnh hưởng đến hoạt động của Liên kết động trên iOS.
DynamicLinkSocialMetaTagParameters
chức vụ Tiêu đề sẽ sử dụng khi Liên kết động được chia sẻ trong một bài đăng trên mạng xã hội.
descriptionText Mô tả sẽ sử dụng khi Liên kết động được chia sẻ trong một bài đăng trên mạng xã hội.
URL hình ảnh URL của một hình ảnh liên quan đến liên kết này. Hình ảnh phải có kích thước ít nhất 300x200 px và nhỏ hơn 300 KB.
DynamicLinkGoogleAnalyticsParameters
nguồn
Trung bình
chiến dịch
thuật ngữ
Nội dung
Các thông số phân tích của Google Play. Những thông số này ( utm_source , utm_medium , utm_campaign , utm_term , utm_content ) đều được thông qua vào Play Store cũng như nối vào link tải.
DynamicLinkItunesConnectAnalyticsParameters
nhà cung cấp
affiliateToken
chiến dịch
Các thông số phân tích của iTunes Connect. Những thông số này ( pt , at , ct ) được truyền cho App Store.

Để rút ngắn một Dynamic Link dài, vượt qua Dynamic Link dài để shortenURL(url:options:) cùng với một DynamicLinkComponentsOptions phản đối nếu bạn muốn tạo ra một liên kết với một hậu tố ngắn hạn:

Nhanh

Lưu ý: sản phẩm căn cứ hỏa lực này không có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS, hoặc mục tiêu watchos.
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

Lưu ý: sản phẩm căn cứ hỏa lực này không có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS, hoặc mục tiêu watchos.
[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);
}];

Theo mặc định, Liên kết động sử dụng mã nhận dạng gói của ứng dụng làm lược đồ URL cần thiết để mở ứng dụng của bạn. Chúng tôi khuyên bạn nên giữ nguyên giá trị mặc định này để giúp việc triển khai của bạn trở nên đơn giản.

Tuy nhiên, các nhà phát triển đang sử dụng lược đồ URL tùy chỉnh cho các mục đích khác cũng có thể muốn sử dụng lược đồ URL tùy chỉnh này cho các Liên kết động của họ. Nếu bạn đang ở trong trường hợp này, bạn có thể chỉ định một lược đồ URL khác cho Liên kết động Firebase của mình bằng cách làm theo các bước sau:

  1. Khi thiết lập ứng dụng của bạn, hãy chắc chắn bạn chỉ định thức truy cập URL mặc định được sử dụng bởi các ứng dụng của bạn trước khi cấu hình của bạn FirebaseApp chia sẻ ví dụ:

    Nhanh

    Lưu ý: sản phẩm căn cứ hỏa lực này không có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS, hoặc mục tiêu 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

    Lưu ý: sản phẩm căn cứ hỏa lực này không có sẵn trên hệ điều hành MacOS, Mac Catalyst, tvOS, hoặc mục tiêu 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;
    }
  2. Bất kỳ khi nào bạn tạo bất kỳ Liên kết động nào, bạn sẽ cần chỉ định lược đồ URL tùy chỉnh mà ứng dụng của bạn sử dụng. Bạn có thể làm điều này thông qua các căn cứ hỏa lực điều khiển, thiết lập các customScheme trong API Builder, xác định ius tham số trong URL của bạn, hoặc gửi iosCustomScheme tham số để REST API

Bước tiếp theo

Bây giờ bạn đã tạo Liên kết động, bạn cần thiết lập ứng dụng của mình để nhận Liên kết động và đưa người dùng đến đúng vị trí trong ứng dụng của bạn sau khi người dùng mở chúng.

Tiếp nhận động liên kết trong ứng dụng của bạn, hãy xem tài liệu cho iOS , Android , C ++ , và Unity .