Bạn có thể tạo ngắn hoặc dài Dynamic Links bằng API Trình tạo Firebase Dynamic Links. API này chấp nhận một Dynamic Link dài hoặc một đối tượng chứa các Dynamic Link và trả về các URL như trong ví dụ sau:
https://example.com/link/WXYZ https://example.page.link/WXYZ
Thiết lập Firebase và SDK Dynamic Links
Trước khi có thể tạo Dynamic Links trong ứng dụng Android, bạn phải thêm Firebase SDK. Nếu ứng dụng của bạn được thiết lập để nhận Dynamic Links, thì bạn đã hoàn tất các bước này và có thể bỏ qua phần này.
Nếu bạn chưa thực hiện, hãy thêm Firebase vào dự án Android.
Khi đăng ký ứng dụng, hãy chỉ định khoá ký SHA-1. Nếu bạn sử dụng Đường liên kết ứng dụng, hãy chỉ định cả khoá SHA-256.
-
Trong mô-đun tệp Gradle (cấp ứng dụng) (thường là
<project>/<app-module>/build.gradle.ktshoặc<project>/<app-module>/build.gradle), hãy thêm phần phụ thuộc của thư viện Dynamic Links cho Android. Bạn nên sử dụng Firebase Android BoM để kiểm soát việc tạo phiên bản thư viện.Để có trải nghiệm tối ưu với Dynamic Links, 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.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.11.0")) // Add the dependencies for the Dynamic Links and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links' implementation 'com.google.firebase:firebase-analytics' }
Bằng cách sử dụng Firebase Android BoM, ứng dụng của bạn sẽ luôn sử dụng những phiên bản tương thích của thư viện Android trên Firebase.
(Phương án thay thế) Thêm phần phụ thuộc của thư viện Firebase mà không sử dụng BoM
Nếu chọn không sử dụng Firebase BoM, bạn phải chỉ định từng phiên bản thư viện Firebase trong dòng phần phụ thuộc.
Xin lưu ý rằng nếu bạn sử dụng nhiều thư viện Firebase trong ứng dụng, thì bạn nên sử dụng BoM để quản lý các phiên bản thư viện. Điều này đảm bảo rằng tất cả các phiên bản đều tương thích.
dependencies { // Add the dependencies for the Dynamic Links and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links:22.1.0' implementation 'com.google.firebase:firebase-analytics:23.2.0' }
- Trong bảng điều khiển Firebase, hãy mở phần Dynamic Links.
-
Nếu bạn chưa chấp nhận điều khoản dịch vụ và đặt miền cho Dynamic Links, hãy làm như vậy khi được nhắc.
Nếu đã có miền Dynamic Links, hãy ghi lại miền đó. Bạn cần cung cấp miền Dynamic Links khi tạo Dynamic Links theo phương thức lập trình.

- Nên dùng: 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 này, bạn sẽ ngăn các bên không được uỷ quyền tạo Dynamic Links 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 phần Cho phép các mẫu URL cụ thể.
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 (cho mục đích kiểm thử hoặc để nhóm tiếp thị dễ dàng tạo một đường liên kết có thể dùng trong một bài đăng trên mạng xã hội), thì cách đơn giản nhất sẽ là truy cập vào Firebase console và tạo một đường liên kết theo cách thủ công theo biểu mẫu từng bước.
Tạo Dynamic Link từ các tham số
Để tạo Dynamic Link, hãy tạo một đối tượng DynamicLink mới bằng
Trình tạo, chỉ định các tham số Dynamic Link bằng các phương thức Trình tạo. Sau đó, hãy gọi buildDynamicLink hoặc buildShortDynamicLink.
Ví dụ tối thiểu sau đây tạo một Dynamic Link dài đến
https://www.example.com/ mở bằng ứng dụng Android trên Android
và ứng dụng com.example.ios trên iOS:
Kotlin
val dynamicLink = Firebase.dynamicLinks.dynamicLink { link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" // Open links with this app on Android androidParameters { } // Open links with com.example.ios on iOS iosParameters("com.example.ios") { } } val dynamicLinkUri = dynamicLink.uri
Java
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") // Open links with this app on Android .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build()) // Open links with com.example.ios on iOS .setIosParameters(new DynamicLink.IosParameters.Builder("com.example.ios").build()) .buildDynamicLink(); Uri dynamicLinkUri = dynamicLink.getUri();
Để tạo Dynamic Link ngắn, hãy tạo DynamicLink theo cùng một cách, sau đó gọi buildShortDynamicLink. Việc tạo một đườ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, buildShortDynamicLink sẽ trả về một Task. Điều này giúp
đường liên kết ngắn có sẵn khi yêu cầu hoàn tất. Ví dụ:
Kotlin
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync { link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" // Set parameters // ... }.addOnSuccessListener { (shortLink, flowchartLink) -> // You'll need to import com.google.firebase.dynamiclinks.component1 and // com.google.firebase.dynamiclinks.component2 // Short link created processShortLink(shortLink, flowchartLink) }.addOnFailureListener { // Error // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") // Set parameters // ... .buildShortDynamicLink() .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() { @Override public void onComplete(@NonNull Task<ShortDynamicLink> task) { if (task.isSuccessful()) { // Short link created Uri shortLink = task.getResult().getShortLink(); Uri flowchartLink = task.getResult().getPreviewLink(); } else { // Error // ... } } });
Theo mặc định, Dynamic Links được tạo bằng hậu tố đường liên kết gồm 17 ký tự. Điều này khiến người khác rất khó đoán được một Dynamic Link hợp lệ. Nếu trường hợp sử dụng của bạn không gây hại cho người khác khi đoán thành công một đường liên kết ngắn, thì bạn có thể muốn tạo các hậu tố chỉ dài khi cần thiết để đảm bảo tính duy nhất. Bạn có thể thực hiện việc này bằng cách truyền ShortDynamicLink.Suffix.SHORT đến phương thức buildShortDynamicLink method:
Kotlin
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) { // Set parameters // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() // ... .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT); // ...
Dynamic Link tham số
Bạn có thể sử dụng API Trình tạo Dynamic Link để tạo Dynamic Links với bất kỳ tham số nào được hỗ trợ. Xem tài liệu tham khảo API để biết thông tin chi tiết.
Ví dụ sau đây tạo một Dynamic Link với một số tham số phổ biến được đặt:
Kotlin
val dynamicLink = Firebase.dynamicLinks.dynamicLink { // or Firebase.dynamicLinks.shortLinkAsync link = Uri.parse("https://www.example.com/") domainUriPrefix = "https://example.page.link" androidParameters("com.example.android") { minimumVersion = 125 } iosParameters("com.example.ios") { appStoreId = "123456789" minimumVersion = "1.0.1" } googleAnalyticsParameters { source = "orkut" medium = "social" campaign = "example-promo" } itunesConnectAnalyticsParameters { providerToken = "123456" campaignToken = "example-promo" } socialMetaTagParameters { title = "Example of a Dynamic Link" description = "This link works whether the app is installed or not!" } }
Java
DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLink(Uri.parse("https://www.example.com/")) .setDomainUriPrefix("https://example.page.link") .setAndroidParameters( new DynamicLink.AndroidParameters.Builder("com.example.android") .setMinimumVersion(125) .build()) .setIosParameters( new DynamicLink.IosParameters.Builder("com.example.ios") .setAppStoreId("123456789") .setMinimumVersion("1.0.1") .build()) .setGoogleAnalyticsParameters( new DynamicLink.GoogleAnalyticsParameters.Builder() .setSource("orkut") .setMedium("social") .setCampaign("example-promo") .build()) .setItunesConnectAnalyticsParameters( new DynamicLink.ItunesConnectAnalyticsParameters.Builder() .setProviderToken("123456") .setCampaignToken("example-promo") .build()) .setSocialMetaTagParameters( new DynamicLink.SocialMetaTagParameters.Builder() .setTitle("Example of a Dynamic Link") .setDescription("This link works whether the app is installed or not!") .build()) .buildDynamicLink(); // Or buildShortDynamicLink()
Bạn có thể đặt các tham số Dynamic Link bằng các phương thức sau:
| Tham số DynamicLink | |
|---|---|
| setLink |
Đường liên kết mà ứng dụng của bạn sẽ mở. Chỉ định một URL mà ứng dụng của bạn có thể xử lý, thường là nội dung hoặc tải trọng của ứng dụng, giúp khởi chạy logic dành riêng cho ứng dụng (chẳng hạn như cấp cho người dùng một phiếu giảm giá hoặc hiển thị màn hình chào mừng). Đường liên kết này phải là một URL có định dạng đúng, được mã hoá URL đúng cách, sử dụng HTTP hoặc HTTPS và không thể là một Đường liên kết động khác. |
| setDomainUriPrefix | Tiền tố URL Dynamic Link mà bạn có thể tìm thấy trong bảng điều khiển Firebase. Miền
Dynamic Link có dạng như trong ví dụ sau:
https://example.com/link https://example.page.link |
| AndroidParameters | |
|---|---|
| setFallbackUrl | Đường liên kết để mở khi ứng dụng chưa được cài đặt. Chỉ định đường liên kết này để thực hiện một việc khác ngoài việc 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ị một trang quảng cáo cho ứng dụng của bạn. |
| setMinimumVersion | versionCode của phiên bản tối thiểu của ứng dụng có thể mở đường liên kết. Nếu ứng dụng cần cài đặt là phiên bản cũ hơn, thì người dùng sẽ được đưa đến Cửa hàng Play để nâng cấp ứng dụng. |
| IosParameters | |
|---|---|
| setAppStoreId | Mã App Store của ứng dụng dùng để gửi người dùng đến App Store khi ứng dụng chưa được cài đặt |
| setFallbackUrl | Đường liên kết để mở khi ứng dụng chưa được cài đặt. Chỉ định đường liên kết này để thực hiện một việc khác ngoài việc 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ị một trang quảng cáo cho ứng dụng của bạn. |
| setCustomScheme | Lược đồ URL tuỳ chỉnh của ứng dụng (nếu được xác định là một lược đồ khác với mã nhận dạng gói của ứng dụng) |
| setIpadFallbackUrl | Đường liên kết để mở trên iPad khi ứng dụng chưa được cài đặt. Chỉ định đường liên kết này để thực hiện một việc khác ngoài việc 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ị một trang quảng cáo cho ứng dụng của bạn. |
| setIpadBundleId | Mã nhận dạng gói của ứng dụng iOS dùng trên iPad để mở đường 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. |
| setMinimumVersion | 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 truyền đến ứng dụng khi ứng dụng được mở và ứng dụng của bạn phải quyết định cách xử lý cờ này. |
| NavigationInfoParameters | |
|---|---|
| setForcedRedirectEnabled | Nếu được đặt thành '1', hãy bỏ qua trang xem trước ứng dụng khi Dynamic Link được mở và thay vào đó, hãy 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ể gửi người dùng đến đích phù hợp nhất một cách đáng tin cậy hơn khi họ mở Dynamic Links trong các ứng dụng. Tuy nhiên, nếu bạn chỉ muốn Dynamic Link được mở trong các ứng dụng có thể mở Dynamic Links một cách đáng tin cậy mà không cần trang này, thì bạn có thể tắt trang đó bằng tham số này. Tham số này sẽ chỉ ảnh hưởng đến hành vi của Dynamic Link trên iOS. |
| SocialMetaTagParameters | |
|---|---|
| setTitle | Tiêu đề dùng khi Dynamic Link được chia sẻ trong một bài đăng trên mạng xã hội. |
| setDescription | Nội dung mô tả dùng khi Dynamic Link được chia sẻ trong một bài đăng trên mạng xã hội. |
| setImageUrl | URL đến một 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 là 300x200 pixel và nhỏ hơn 300 KB. |
| GoogleAnalyticsParameters | |
|---|---|
| setSource setMedium setCampaign setTerm setContent |
Tham số phân tích Google Play. Các tham số này
(utm_source, utm_medium,
utm_campaign, utm_term, utm_content)
cũng được truyền đến Cửa hàng Play và được thêm vào tải trọng đường liên kết.
|
| ItunesConnectAnalyticsParameters | |
|---|---|
| setProviderToken setAffiliateToken setCampaignToken |
Tham số phân tích iTunes Connect. Các tham số này (pt,
at, ct) được truyền đến App Store. |
Rút ngắn một Dynamic Link dài
Để rút ngắn một Dynamic Link, hãy chỉ định URL của Dynamic Link bằng
setLongLink thay vì đặt các tham số bằng các phương thức trình tạo
khác:
Kotlin
val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync { longLink = Uri.parse( "https://example.page.link/?link=" + "https://www.example.com/&apn=com.example.android&ibn=com.example.ios", ) }.addOnSuccessListener { (shortLink, flowChartLink) -> // You'll need to import com.google.firebase.dynamiclinks.component1 and // com.google.firebase.dynamiclinks.component2 // Short link created processShortLink(shortLink, flowChartLink) }.addOnFailureListener { // Error // ... }
Java
Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink() .setLongLink(Uri.parse("https://example.page.link/?link=https://www.example.com/&apn=com.example.android&ibn=com.example.ios")) .buildShortDynamicLink() .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() { @Override public void onComplete(@NonNull Task<ShortDynamicLink> task) { if (task.isSuccessful()) { // Short link created Uri shortLink = task.getResult().getShortLink(); Uri flowchartLink = task.getResult().getPreviewLink(); } else { // Error // ... } } });