Bạn có thể tạo Đườ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 Đường liên kết động dài hoặc một đối tượng chứa các tham số Đường liên kết động và trả về các URL như trong các ví dụ sau:
https://example.com/link/WXYZ
https://example.page.link/WXYZ
Thiết lập Firebase và SDK Liên kết động
Trước khi có thể tạo Đường liên kết động 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.
Cài đặt và khởi chạy Firebase SDK cho Flutter nếu bạn chưa làm.
Từ thư mục gốc của dự án Flutter, hãy chạy lệnh sau để cài đặt trình bổ trợ Dynamic Links:
flutter pub add firebase_dynamic_links
Nếu bạn đang tạo một ứng dụng Android, hãy mở trang Cài đặt dự án của bảng điều khiển Firebase và đảm bảo bạn đã chỉ định khoá ký SHA-1. Nếu bạn sử dụng Liên kết trong ứng dụng, hãy chỉ định cả khoá SHA-256.
Trong bảng điều khiển của Firebase, hãy mở mục Liên kết động.
Nếu bạn chưa thiết lập miền cho Đường liên kết động, hãy nhấp vào nút Bắt đầu rồi làm theo lời nhắc.
Nếu bạn đã có một miền Dynamic Links, hãy ghi lại miền đó. Bạn cần cung cấp một miền Đường liên kết động khi tạo Đường liên kết động theo phương thức lập trình.
Nên dùng: Trong trình đơn "Tuỳ chọn khác" (⋮), hãy 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 trái phép tạo Đường liên kết động chuyển hướng từ miền của bạn đến những trang web mà bạn không kiểm soát.
Xem phần Cho phép các mẫu URL cụ thể.
Tạo một Đường liên kết động từ các tham số
Để tạo một Đường liên kết động, hãy tạo một đối tượng DynamicLinkParameters
mới và truyền đối tượng đó đến buildLink()
hoặc buildShortLink()
.
Ví dụ tối thiểu sau đây tạo một Đường liên kết động dài đến https://www.example.com/
sẽ mở bằng com.example.app.android
trên Android và ứng dụng com.example.app.ios
trên iOS:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildLink(dynamicLinkParams);
Để tạo một Dynamic Link ngắn, hãy truyền đối tượng DynamicLinkParameters
đến buildShortLink()
. Bạn cần có một lệnh gọi mạng để tạo đường liên kết rút gọn.
Ví dụ:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
Theo mặc định, Đường liên kết động ngắn được tạo bằng các hậu tố chỉ dài vài ký tự. Mặc dù giúp đường liên kết ngắn gọn hơn, nhưng điều này cũng có thể khiến người khác đoán được một đường liên kết ngắn hợp lệ. Thường thì việc này không gây hại vì đường liên kết dẫn đến thông tin công khai.
Tuy nhiên, nếu đường liên kết rút gọn dẫn đến thông tin dành riêng cho người dùng, thì bạn nên tạo đường liên kết dài hơn có hậu tố gồm 17 ký tự để không ai có thể đoán được một Dynamic Link hợp lệ. Để làm như vậy, hãy truyền ShortDynamicLinkType.unguessable
vào phương thức buildShortLink()
:
final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
dynamicLinkParams,
shortLinkType: ShortDynamicLinkType.unguessable,
);
Tham số Đường liên kết động
Bạn có thể dùng API Trình tạo đường liên kết động để tạo Đường liên kết động bằng bất kỳ tham số nào được hỗ trợ. Hãy xem tài liệu tham khảo về API.
Ví dụ sau đây tạo một Đường liên kết động với một số tham số phổ biến được đặt:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(
packageName: "com.example.app.android",
minimumVersion: 30,
),
iosParameters: const IOSParameters(
bundleId: "com.example.app.ios",
appStoreId: "123456789",
minimumVersion: "1.0.1",
),
googleAnalyticsParameters: const GoogleAnalyticsParameters(
source: "twitter",
medium: "social",
campaign: "example-promo",
),
socialMetaTagParameters: SocialMetaTagParameters(
title: "Example of a Dynamic Link",
imageUrl: Uri.parse("https://example.com/image.png"),
),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
Bạn có thể đặt các tham số của Đường liên kết động 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, sẽ khởi tạo logic dành riêng cho ứng dụng (chẳng hạn như ghi có cho người dùng bằ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 phù hợp, đượ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 của Đường liên kết động. Bạn có thể tìm thấy tiền tố này trong bảng điều khiển Firebase. A
Miền Đường liên kết động sẽ có dạng như trong các 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 thao tác này để làm 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ị trang quảng cáo cho ứng dụng của bạn. |
setMinimumVersion | Mã phiên bản 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ài đặt là một phiên bản cũ, người dùng sẽ được chuyển đế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 để chuyển 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. Hãy chỉ định thao tác này để làm việc gì đó 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ị 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 giá trị 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. Hãy chỉ định tham số này để làm việ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 web của nội dung hoặc hiển thị 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 sẽ 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 trên 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 của bạn khi ứng dụng 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 Đường liên kết động đượ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 đến phù hợp nhất một 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 chỉ muốn Đường liên kết động được 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 trang này bằng tham số này. Tham số này sẽ chỉ ảnh hưởng đến hành vi của Đường liên kết động trên iOS. |
SocialMetaTagParameters | |
---|---|
setTitle | Tiêu đề sẽ dùng khi Đường liên kết động được chia sẻ trong một bài đăng trên mạng xã hội. |
setDescription | Nội dung mô tả sẽ dùng khi Đường liên kết động đượ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à kích thước tệp dưới 300 KB. |
GoogleAnalyticsParameters | |
---|---|
setSource setMedium setCampaign setTerm setContent |
Các thông số phân tích của 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 của đường liên kết. |
ItunesConnectAnalyticsParameters | |
---|---|
setProviderToken setAffiliateToken setCampaignToken |
Các thông số phân tích của iTunes Connect. Các tham số này (`pt`, `at`, `ct`) được truyền đến App Store. |