Bạn có thể tạo các Đường liên kết động ngắn hoặc dài bằng API Trình tạo đường liên kết động của Firebase. API này chấp nhận một Liên kết động dài hoặc một đối tượng chứa Liên kết động tham số 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 nhớ thêm Firebase vào iOS của bạn dự án.
Thiết lập Firebase và SDK liên kết động
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 Firebase.
- Trong Xcode, khi dự án ứng dụng của bạn đang mở, hãy chuyển đến Tệp > Thêm gói.
- Khi được nhắc, hãy thêm kho lưu trữ SDK nền tảng Apple của Firebase:
- Chọn thư viện Đường liên kết động.
- Thêm cờ
-ObjC
vào mục Cờ trình liên kết khác trong chế độ cài đặt bản dựng của mục tiêu. - Để có trải nghiệm tối ưu với Đường liên kết động, bạn nên bật Google Analytics trong dự án Firebase và thêm Firebase SDK cho Google Analytics vào ứng dụng của bạn. Bạn có thể hãy chọn thư viện không thu thập IDFA hoặc có thu thập IDFA.
- Khi hoàn tất, Xcode sẽ tự động bắt đầu phân giải và tải xuống các phần phụ thuộc trong nền.
https://github.com/firebase/firebase-ios-sdk.git
Bây giờ, hãy thực hiện một số bước định cấu hình:
- Trong bảng điều khiển của Firebase, hãy mở mục Đường liên kết động.
-
Nếu bạn chưa chấp nhận điều khoản dịch vụ và đặt tiền tố URI cho Liên kết động của bạn, 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 lại tiền tố đó. Bạn cần khi bạn tạo Liên kết động theo phương thức lập trình.
- Đề xuất: Chỉ định các mẫu URL được phép trong đường liên kết sâu và đường liên kết dự phòng. Bằng cách làm như vậy, bạn sẽ ngăn chặn các bên không được 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 bạn không kiểm soát. Xem phần Cho phép cụ thể Mẫu URL.
-
Đảm bảo rằng Mã App Store và tiền tố Mã ứng dụng của bạn là được chỉ định trong phần cài đặt của ứng dụng. Để xem và chỉnh sửa các chế độ cài đặt của ứng dụng, hãy truy cập với dự án Firebase của bạn Cài đặt và chọn ứng dụng iOS của bạn.
Xác nhận rằng dự án Firebase của bạn được định cấu hình đúng cách để sử dụng Liên kết động trong ứng dụng iOS của bạn bằng cách mở
apple-app-site-association
tệp được lưu trữ trên Miền Liên kết động. Firebase sẽ phân phátapple-app-site-association
từ gốc của tệp cũng như thư mục con.well-known
. Cho 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, tệp
apple-app-site-association
sẽ chứa một tệp đối chiếu vào tiền tố Mã ứng dụng và mã gói của ứng dụng. Ví dụ:{"applinks":{"apps":[],"details":[{"appID":"1234567890.com.example.ios","paths":["/*"]}]}}
Nếu thuộc tính
details
trống, hãy kiểm tra kỹ xem bạn đã chỉ định chưa tiền tố Mã ứng dụng của bạn. Xin lưu ý rằng tiền tố Mã ứng dụng có thể không giống với Mã nhóm của bạn.
Thêm Firebase vào ứng dụng của bạn
- Nhập mô-đun
FirebaseCore
trongUIApplicationDelegate
cũng như bất kỳ tên nào khác Các mô-đun Firebase mà người được uỷ quyền sử dụng. Ví dụ: Cách sử dụng Cloud Firestore và Xác thực:SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Định cấu hình một
FirebaseApp
thực thể dùng chung trong Phương thứcapplication(_:didFinishLaunchingWithOptions:)
:SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- Nếu đang sử dụng SwiftUI, bạn phải tạo một ứng dụng uỷ quyền và đính kèm nó
đến cấu trúc
App
của bạn thông quaUIApplicationDelegateAdaptor
hoặcNSApplicationDelegateAdaptor
. Bạn cũng phải tắt tính năng uỷ quyền ứng dụng. Cho hãy xem hướng dẫn về SwiftUI để biết thêm thông tin.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
Sử dụng bảng điều khiển của Firebase
Nếu bạn muốn tạo một Liên kết động duy nhất cho mục đích thử nghiệm hoặc cho nhóm tiếp thị của mình để dễ dàng tạo một đường liên kết có thể dùng như bài đăng trên mạng xã hội, cách đơn giản nhất là truy cập bảng điều khiển của Firebase rồi tạo trang web theo cách thủ công theo biểu mẫu hướng dẫn từng bước.
Sử dụng iOS Builder API
Bạn có thể sử dụng iOS Builder API để tạo Liên kết động từ các thông số hoặc để rút ngắn một Liên kết động dài.
Tạo Liên kết động từ các thông số
Để tạo một Đường liên kết động, hãy tạo một đối tượng DynamicLinkComponents
mới
và chỉ định các tham số Liên kết động bằng cách đặt tham số tương ứng của đối tượng
các thuộc tính. Sau đó, hãy lấy đường liên kết dài từ url
của đối tượng
hoặc nhận đường liên kết ngắn bằng cách gọi shorten()
.
Ví dụ tối giản sau đây sẽ tạo một Liên kết động dài tới
https://www.example.com/my-page
mở cùng với ứng dụng iOS của bạn đang bật
iOS và ứng dụng com.example.android
trên Android:
Swift
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);
Để tạo một Đường liên kết động ngắn, hãy tạo một DynamicLinkComponents
theo cùng một cách rồi gọi shorten()
.
Việc tạo đường liên kết ngắn đòi hỏi phải có lệnh gọi mạng, vì vậy, thay vì trực tiếp
trả về đường liên kết, shorten()
sẽ chấp nhận một trình xử lý hoàn thành.
được gọi khi yêu cầu hoàn tất. Ví dụ:
Swift
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); }];
Theo mặc định, các Đường liên kết động ngắn được tạo kèm theo hậu tố của đường liên kết gồm 17 ký tự
khiến ai đó khó đoán được Liên kết động hợp lệ. Nếu, đối với
trường hợp sử dụng của bạn, sẽ không có hại nếu ai đó đoán được một đường liên kết ngắn,
bạn có thể muốn tạo hậu tố chỉ khi cần thiết
mà bạn có thể thực hiện bằng cách đặt
Thuộc tính dynamicLinkComponentsOptions
:
Swift
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); }];
Thông số liên kết động
Bạn có thể sử dụng API Trình tạo đường liên kết động để tạo Liên kết động bằng bất kỳ các tham số được hỗ trợ. Xem Tài liệu tham khảo API để biết thông tin chi tiết.
Ví dụ sau đây sẽ tạo một Đường liên kết động với một vài thông số phổ biến đặt:
Swift
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);
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:
Thành phần đường liên kết động | |
---|---|
đường liên kết |
Đường liên kết mà ứ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 của ứng dụng hoặc tải trọng, bắt đầu logic dành riêng cho ứng dụng (chẳng hạn như cấp tín dụng 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ã hoá URL chính xác, sử dụng HTTP hoặc HTTPS, đồng thời không được là một Liên kết động khác. |
Tiền tố miềnURI | Tiền tố URL đường liên kết động mà bạn có thể tìm thấy trong bảng điều khiển của Firebase. Đáp
Miền Liên kết động sẽ có dạng như các ví dụ sau:
https://example.com/link https://example.page.link |
DynamicLinkAndroidParameters (Thông số động liên kết Android) | |
---|---|
URL dự phòng | Đường liên kết để mở khi ứng dụng chưa được cài đặt. Chỉ định thao tác này để làm một việc gì đó ngoài việc cài đặt ứng dụng qua Cửa hàng Play khi chưa cài đặt ứng dụng, chẳng hạn như mở phiên bản nội dung trên web dành cho thiết bị di động hoặc hiển thị trang quảng cáo cho ứng dụng của bạn. |
phiên bản tối thiểu | versionCode của phiên bản ứng dụng tối thiểu có thể mở đường liên kết. Nếu ứng dụng đã cài đặt là một phiên bản cũ, thì người dùng sẽ được chuyển đến Cửa hàng Play để nâng cấp. |
Thông số DynamicLinkIOS | |
---|---|
Mã cửa hàng ứng dụng | Mã App Store của ứng dụng của bạn, dùng để đưa người dùng đến App Store khi ứng dụng chưa được cài đặt |
URL dự phòng | Đường liên kết để mở khi ứng dụng chưa được cài đặt. Chỉ định thao tác này để làm một việc gì đó ngoài việc cài đặt ứng dụng từ App Store khi chưa cài đặt ứng dụng, chẳng hạn như mở phiên bản nội dung trên web dành cho thiết bị di động hoặc hiển thị trang quảng cáo cho ứng dụng của bạn. |
Lược đồ tuỳ chỉnh | Lược đồ URL tuỳ chỉnh của ứng dụng, nếu được xác định không phải là mã gói ứng dụng |
URL dự phòng của iPad | Đường liên kết để mở trên iPad khi ứng dụng chưa được cài đặt. Chỉ định thao tác này để thực hiện một thao tác khác ngoài việc cài đặt ứng dụng từ App Store khi ứng dụng chưa được cài đặt, chẳng hạn như mở phiên bản nội dung trên web hoặc hiển thị trang quảng cáo cho ứng dụng của bạn. |
iPadBundleID | Mã nhận dạng gói của ứng dụng iOS dùng trên iPad để mở đường liên kết. Bạn phải kết nối ứng dụng với dự án trên trang Tổng quan của bảng điều khiển của Firebase. |
Phiên bản ứng dụng tối thiểu | Số phiên bản của phiên bản tối thiểu của ứng dụng có thể mở đường liên kết. Cờ này được chuyển đến ứng dụng của bạn khi được mở và ứng dụng phải quyết định tác vụ cần thực hiện với cờ đó. |
Thông số DynamicLinkNavigationInfo | |
---|---|
Bắt buộc chuyển hướng đã bật | Nếu bạn đặt thành '1', hãy bỏ qua trang xem trước ứng dụng khi Đường liên kết động mở, mà 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 trang đích phù hợp nhất theo cách đáng tin cậy hơn khi họ mở Đường liên kết động trong ứng dụng; tuy nhiên, nếu bạn muốn một Đường liên kết động chỉ mở trong những ứng dụng có thể mở Đường liên kết động một cách đáng tin cậy mà không cần trang này, thì bạn có thể tắt đường liên kết động đó 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. |
Liên kết động | |
---|---|
tiêu đề | Tiêu đề cần sử dụng khi Đường liên kết động được chia sẻ trong bài đăng trên mạng xã hội. |
văn bản mô tả | Nội dung mô tả để sử dụng khi Đường liên kết động được chia sẻ trong bài đăng trên mạng xã hội. |
URL hình ảnh | URL đến hình ảnh liên quan đến đường liên kết này. Hình ảnh phải có kích thước tối thiểu 300x200 pixel và nhỏ hơn 300 KB. |
Thông số DynamicLinkGoogleAnalytics | |
---|---|
nguồn phương tiện chiến dịch từ khoá nội dung |
Thông số phân tích của Google Play. Các thông số này
(utm_source , utm_medium ,
utm_campaign , utm_term , utm_content )
được chuyển đến Cửa hàng Play cũng như được thêm vào tải trọng của đường liên kết.
|
Thông số DynamicLinkItunesConnectAnalytics | |
---|---|
providerToken affiliateToken campaignToken |
Thông số phân tích của iTunes Connect. Các thông số này (pt ,
at , ct ) được chuyển đến App Store. |
Rút ngắn một đường liên kết động dài
Để rút ngắn một Liên kết động dài, hãy chuyển Liên kết động dài tới
shortenURL(url:options:)
cùng với
DynamicLinkComponentsOptions
nếu bạn muốn tạo một
liên kết có hậu tố ngắn:
Swift
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); }];
Chỉ định lược đồ URL tuỳ chỉnh cho Đường liên kết động
Theo mặc định, Đường liên kết động sử dụng giá trị nhận dạng gói ứng dụng của bạn làm lược đồ URL cần thiết để mở . Bạn nên giữ nguyên giá trị mặc định này để đơn giản hoá quá trình triển khai.
Tuy nhiên, những nhà phát triển đang sử dụng lược đồ URL tuỳ chỉnh cho các mục đích khác có thể vẫn muốn sử dụng lược đồ URL tuỳ chỉnh tương tự này cho Đường liên kết động của họ. Nếu bạn rơi vào 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 bạn bằng cách làm theo các bước sau:
- Khi thiết lập ứng dụng, hãy đảm bảo bạn chỉ định lược đồ URL mặc định mà ứng dụng sẽ sử dụng
trước khi định cấu hình bản sao dùng chung
FirebaseApp
:Swift
Lưu ý: Sản phẩm Firebase này không hoạt động trên các mục tiêu của macOS, Mac Catalyst, tvOS hoặc 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 Firebase này không hoạt động trên các mục tiêu của macOS, Mac Catalyst, tvOS hoặc 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; }
- Mỗi khi tạo một Đường liên kết động bất kỳ, bạn sẽ cần chỉ định lược đồ URL tùy chỉnh mà bạn
ứng dụng sử dụng. Bạn có thể thực hiện việc này thông qua bảng điều khiển của Firebase bằng cách đặt
customScheme
trong Builder API, chỉ định thông sốius
trong URL của bạn hoặc gửi thông sốiosCustomScheme
đến API REST
Các bước tiếp theo
Giờ đây, 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à chuyển người dùng đến đúng vị trí trong ứng dụng của bạn sau khi người dùng mở các liên kết đó.
Để nhận được Liên kết động trong ứng dụng của bạn, hãy xem tài liệu cho iOS, Android, C++ và Unity.