Tạo đường liên kết động bằng C++

Bạn có thể tạo Dynamic Links ngắn hoặc dài bằng API Firebase Dynamic Links. API này sử dụng 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 ngắn từ một đường liên kết dài đã tạo trước đó. Firebase Dynamic Links sẽ tạo một URL như sau:

https://example.page.link/WXYZ

SDK C++ hoạt động cho cả Android và iOS, nhưng bạn cần thiết lập thêm một số bước cho từng nền tảng.

Trước khi bắt đầu

Trước khi có thể sử dụng Firebase Dynamic Links, bạn cần:

  • Đăng ký dự án C++ 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ì tức là 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++ bao gồm các nhiệm vụ trong cả bảng điều khiển Firebase và trong dự án C++ đang mở (ví dụ: bạn tải các 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++).

Android

  1. Trong bảng điều khiển Firebase, hãy mở mục Dynamic Links.
  2. 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 nhớ 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.

  3. 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 có thể ngă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 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ể.

iOS

  1. Trong bảng điều khiển Firebase, hãy mở mục Dynamic Links.
  2. 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 nhớ tiền tố đó. Bạn cần cung cấp một miền Dynamic Links khi tạo Dynamic Links theo phương thức lập trình.

  3. 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 lược đồ URL tuỳ chỉnh vào ứng dụng để hỗ trợ nhận Dynamic Links:
    1. Để mở cấu hình dự án, hãy nhấp đúp vào tên dự án trong chế độ xem dạng cây ở bên trái. Chọn ứng dụng của bạn trong mục TARGETS (MỤC TIÊU), sau đó chọn thẻ Info (Thông tin) rồi mở rộng mục URL Types (Loại URL).
    2. Nhấp vào nút + rồi thêm lược đồ 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 GoogleService-Info.plist và tìm khoá 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.
    3. Nhấp vào nút + rồi thêm lược đồ URL thứ hai. Mã 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ẻ General (Chung) của cấu hình dự án (Identity > Bundle Identifier (Danh tính > Giá trị 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 thử nghiệm 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 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 bằng cách làm 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 hoạt động xây dựng thương hiệu của 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 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

Trước khi có thể 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:

Android

Tạo firebase::App, truyền môi trường JNI và tệp tham chiếu jobject đến Hoạt động Java dưới dạng đối số:

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);

iOS

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 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 Dynamic Link dài từ các tham số

Để tạo Đường liên kết động, hãy tạo một đối tượng DynamicLinkComponents, đặt bất kỳ thành viên không bắt buộc nào để định cấu hình thêm và truyền đối tượng đó đến dynamic_links::GetShortLink hoặc dynamic_links::GetLongLink.

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/ 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 ngắn Dynamic Link

Để tạo Đường liên kết động 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; tham số 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 ngắn, bạn cần có một yêu cầu mạng đến phần phụ trợ Firebase, vì vậy, GetShortLink không đồng bộ, trả về 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ó vòng lặp cập nhật chạy thường xuyên (ví dụ: 30 hoặc 60 lần mỗi giây), bạn có thể kiểm tra kết quả một lần cho 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());
  }
}