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 lấy một số cấu trúc tham số không bắt buộc để tạo các liên kết. Đường liên kết ngắn có thể cũng được tạo 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, với một số bước thiết lập bổ sung cho mỗi nền tảng.d

Trước khi bắt đầu

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

  • Đă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, có nghĩa là dự án đó đã được đăng ký và được định cấu hình cho Firebase.

  • Thêm SDK C++ Firebase vào dự án C++.

Lưu ý rằng việc thêm Firebase vào dự án C++ bao gồm các tác vụ trong cả Bảng điều khiển Firebase và trong dự án C++ đang mở của bạn (ví dụ: bạn tải xuống Tệp cấu hình Firebase 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ở phần Dynamic Links.
  2. Nếu bạn chưa chấp nhận điều khoản dịch vụ và đặt URI cho Dynamic Links của bạn, hãy thực hiện việc nà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 bạn tạo theo phương thức lập trình Dynamic Links.

  3. Đề 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 trái phép tạo Dynamic Links 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 Mẫu URL danh sách cho phép.

iOS

  1. Trong bảng điều khiển Firebase, hãy mở phần Dynamic Links.
  2. Nếu bạn chưa chấp nhận điều khoản dịch vụ và đặt URI cho Dynamic Links của bạn, hãy thực hiện việc nà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 bạn tạo bằng cách lập trình Dynamic Links.

  3. Thư viện ứng dụng C++ Firebase Dynamic Links sử dụng các giao thức URL tuỳ chỉnh trên iOS để xử lý đường liên kết. Bạn phải thêm lược đồ URL tùy chỉnh vào ứng dụng của mình để hỗ trợ đang 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 MỤC TIÊU, sau đó chọn thẻ Thông tin rồi mở rộng mục Loại URL.
    2. Nhấp vào nút dấu + rồi thêm lược đồ URL cho ứng dụng bị đảo ngược của bạn Mã nhận dạng. Để tìm giá trị này, hãy mở GoogleService-Info.plist tệp cấu hình và tìm khoá REVERSED_CLIENT_ID. Sao chép của khoá đó rồi dán vào hộp Lược đồ URL trên . Để trống các trường khác.
    3. Nhấp vào nút dấu + rồi thêm lược đồ URL thứ hai. Đây là giống như 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, nhập giá trị đó vào hộp Lược đồ URL. Bạn có thể tìm thấy mã gói ứng dụng trong thẻ General (Chung) của dự án cấu hình (Nhận dạng > Giá trị nhận dạng gói).

Sử dụng bảng điều khiển Firebase

Nếu bạn muốn tạo một Dynamic Link cho mục đích thử nghiệm hoặc cho nhóm tiếp thị để 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 vào 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.

Miền tuỳ chỉnh

Bạn có thể kiểm soát tốt hơn các thành phần xây dựng thương hiệu của Dynamic Link bằng cách sử dụng thương hiệu của riêng mình thay vì miền con goo.gl hoặc page.link. Làm theo các hướng dẫn này hướng dẫn thiết lập miền tuỳ chỉnh cho dự án của bạn.

Sử dụng API Firebase Dynamic Links

Tạo và khởi chạy ứng dụng

Trước khi có thể tạo Dynamic Links, bạn cần tạo và khởi chạy đối tượng firebase::App.

Bao gồ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à jobject tham chiếu đến Hoạt động Java làm đố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 một Dynamic Link, trước tiên khởi động 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 Liên kết động, hãy tạo một đối tượng DynamicLinkComponents, đặt bất kỳ các thành phần không bắt buộc cho cấu hình bổ sung và chuyển cấu hình đó đến dynamic_links::GetShortLink hoặc dynamic_links::GetLongLink.

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/ mở bằng ứng dụng Android của bạn 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 một Dynamic Link ngắn

Để tạo một Đường liên kết động ngắn, hãy chuyể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 không bắt buộc phải lấy thêm một cấu hình DynamicLinkOptions tham số có PathLength; điều này cho phép bạn kiểm soát cách liên kết tạo. Để tạo một đường liên kết ngắn, bạn cần gửi yêu cầu mạng đến Firebase phần phụ trợ, vì vậy GetShortLink không đồng bộ sẽ 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 (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ột lần cho mỗi bả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());
  }
}