Bạn có thể tạo Dynamic Links ngắn hoặc dài bằng API Firebase Dynamic Links. API này lấy một số cấu trúc tham số không bắt buộc để tạo đường liên kết. Bạn cũng có thể tạo đường liên kết rút gọn từ một đường liên kết dài đã tạo trước đó. Firebase Dynamic Links sẽ tạo ra một URL như sau:
https://example.page.link/WXYZ
SDK C++ hoạt động cho cả Android và iOS, với một số chế độ thiết lập bổ sung bắt buộc cho mỗi nền tảng.
Trước khi bắt đầu
Để có thể sử dụng Firebase Dynamic Links, bạn cần phải:
Đăng ký dự án C++ của bạn và định cấu hình dự án đó để sử dụng Firebase.
Nếu dự án C++ của bạn đã sử dụng Firebase, thì dự án đó đã được đăng ký và định cấu hình cho Firebase.
Thêm Firebase C++ SDK vào dự án C++.
Xin lưu ý rằng việc thêm Firebase vào dự án C++ của bạn bao gồm các thao tác cả trong bảng điều khiển Firebase và trong dự án C++ đang mở (ví dụ: bạn tải tệp cấu hình Firebase xuống từ bảng điều khiển, sau đó di chuyển các tệp đó vào dự án C++).
- Trong bảng điều khiển Firebase, hãy mở mục Dynamic Links.
Nếu bạn chưa chấp nhận điều khoản dịch vụ và đặt tiền tố URI cho Dynamic Links, hãy làm như vậy khi được nhắc.
Nếu bạn đã có tiền tố URI Dynamic Links, hãy ghi lại tiền tố đó. Bạn cần cung cấp tiền tố URI 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 chặn các bên trái phép tạo Dynamic Links 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ể.
- Trong bảng điều khiển Firebase, hãy mở mục Dynamic Links.
Nếu bạn chưa chấp nhận điều khoản dịch vụ và đặt tiền tố URI cho Dynamic Links, hãy làm như vậy khi được nhắc.
Nếu bạn đã có tiền tố URI Dynamic Links, hãy ghi lại tiền tố đó. 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.
- Thư viện ứng dụng C++ Firebase Dynamic Links sử dụng lược đồ URL tuỳ chỉnh trên iOS để xử lý các đường liên kết. Bạn phải thêm các lược đồ URL tuỳ chỉnh vào ứng dụng để hỗ trợ việc nhận Dynamic Links:
- Để mở cấu hình dự án, hãy nhấp đúp vào tên dự án trong chế độ xem cây bên trái. Chọn ứng dụng của bạn trong phần MỤC TIÊU, sau đó chọn thẻ Thông tin và mở rộng phần Các loại URL.
- Nhấp vào nút + rồi thêm một giản đồ URL cho mã ứng dụng khách đảo ngược. Để tìm giá trị này, hãy mở tệp cấu hình
rồi tìm khoáGoogleService-Info.plist REVERSED_CLIENT_ID
. Sao chép giá trị của khoá đó rồi dán vào hộp URL Schemes (Lược đồ URL) trên trang cấu hình. Để trống các trường khác. - Nhấp vào nút + rồi thêm một lược đồ URL thứ hai. Khoá này giống với mã nhận dạng gói của ứng dụng. Ví dụ: nếu mã nhận dạng gói của bạn là
com.example.ios
, hãy nhập giá trị đó vào hộp URL Schemes (Lược đồ URL). Bạn có thể tìm thấy mã nhận dạng gói của ứng dụng trong thẻ Chung của cấu hình dự án (Danh tính > Mã nhận dạng gói).
Sử dụng bảng điều khiển Firebase
Nếu 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ị của bạn dễ dàng tạo một đường liên kết có thể dùng trong một nội dung nào đó như bài đăng trên mạng xã hội, thì cách đơn giản nhất là truy cập vào bảng điều khiển Firebase 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.
Miền tuỳ chỉnh
Bạn có thể kiểm soát tốt hơn việc xây dựng thương hiệu cho Dynamic Link bằng cách sử dụng miền của riêng bạn thay vì miền con goo.gl
hoặc page.link
. Hãy làm theo các hướng dẫn này để thiết lập một miền tuỳ chỉnh cho dự án của bạn.
Sử dụng Firebase Dynamic Links API
Tạo và khởi động Ứng dụng
Để tạo Dynamic Links, bạn cần tạo và khởi động một đối tượng firebase::App
.
Thêm tệp tiêu đề cho firebase::App
:
#include "firebase/app.h"
Phần tiếp theo sẽ khác nhau tuỳ thuộc vào nền tảng của bạn:
Tạo firebase::App
, truyền môi trường JNI và một đối số tham chiếu jobject
đến Hoạt động Java:
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);
Tạo firebase::App
:
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));
Khởi chạy thư viện Dynamic Links
Trước khi tạo một Dynamic Link, trước tiên, bạn phải khởi chạy thư viện Dynamic Links:
::firebase::dynamic_links::Initialize(app, null);
Tạo một Dynamic Link dài từ các tham số
Để tạo một Đường liên kết động, hãy tạo một đối tượng DynamicLinkComponents, đặt mọi thành phần không bắt buộc để có thêm cấu hình và truyền đối tượng đó đến dynamic_links::GetShortLink
hoặc dynamic_links::GetLongLink
.
Ví dụ tối thiểu sau đây sẽ tạo một Đường liên kết động dài đến https://www.example.com/ mở bằng ứng dụng Android com.example.android.package_name và ứng dụng iOS com.example.ios:
firebase::dynamic_links::IOSParameters ios_parameters("com.example.ios"); firebase::dynamic_links::AndroidParameters android_parameters( "com.example.android.package_name"); firebase::dynamic_links::DynamicLinkComponents components( "https://www.example.com/", "example.page.link"); components.android_parameters = &android_parameters; components.ios_parameters = &ios_parameters; firebase::dynamic_links::GeneratedDynamicLink long_link = firebase::dynamic_links::GetLongLink(components);
Tạo video Shorts Dynamic Link
Để tạo một Dynamic Link ngắn, hãy truyền một đường liên kết dài đã tạo trước đó đến GetShortLink
hoặc tạo DynamicLinkComponents
theo cách tương tự như trên.
GetShortLink
có thể nhận thêm một tham số cấu hình DynamicLinkOptions
với PathLength
; điều này cho phép bạn kiểm soát cách tạo đường liên kết. Để tạo một đường liên kết rút gọn, bạn cần có một yêu cầu mạng đến phần phụ trợ Firebase, vì vậy GetShortLink
là không đồng bộ, trả về một Future<GeneratedLink>
.
Ví dụ:
firebase::dynamic_links::DynamicLinkOptions short_link_options; short_link_options.path_length = firebase::dynamic_links::kPathLengthShort; firebase::Future<firebase::dynamic_links::GeneratedDynamicLink> result = firebase::dynamic_links::GetShortLink(components, short_link_options);
Nếu chương trình của bạn có một vòng lặp cập nhật chạy thường xuyên (chẳng hạn như 30 hoặc 60 lần mỗi giây), bạn có thể kiểm tra kết quả mỗi lần cập nhật:
if (result.status() == firebase::kFutureStatusComplete) { if (result.error() == firebase::dynamic_links::kErrorCodeSuccess) { firebase::dynamic_links::GeneratedDynamicLink link = *result.result(); printf("Create short link succeeded: %s\n", link.url.c_str()); } else { printf("Created short link failed with error '%s'\n", result.error_message()); } }