Tạo liên kết động với C++

Bạn có thể tạo Liên kết động ngắn hoặc dài bằng API Liên kết động Firebase. API có một số cấu trúc tham số tùy chọn để xây dựng liên kết. Liên kết ngắn cũng có thể được tạo từ liên kết dài được tạo trước đó. Liên kết động Firebase 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ố thiết lập bổ sung cần thiết cho từng nền tảng.d

Trước khi bắt đầu

Trước khi có thể sử dụng Liên kết động Firebase , bạn cần:

  • Đăng ký dự án C++ của bạn và định cấu hình 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 SDK Firebase C++ vào dự án C++ của bạn.

Lưu ý rằng việc thêm Firebase vào dự án C++ của bạn bao gồm các tác vụ cả trong bảng điều khiển Firebase và trong dự án C++ 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 đó chuyển chúng vào dự án C++ của bạn).

Android

  1. Trong bảng điều khiển Firebase, hãy mở phần Liên kết động .
  2. Nếu bạn chưa chấp nhận các điều khoản dịch vụ và đặt tiền tố URI cho Liên kết động của mình, hãy làm như vậy khi được nhắc.

    Nếu bạn đã có tiền tố URI liên kết động, hãy lưu ý đến nó. Bạn cần cung cấp tiền tố URI liên kết động khi tạo Liên kết động theo chương trình.

  3. Khuyến nghị : Chỉ định các mẫu URL được phép trong liên kết sâu và liên kết dự phòng của bạn. Bằng cách đó, bạn ngăn chặn các bên trái phép tạo Liên kết động 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 các mẫu URL danh sách trắng .

iOS

  1. Trong bảng điều khiển Firebase, hãy mở phần Liên kết động .
  2. Nếu bạn chưa chấp nhận các điều khoản dịch vụ và đặt tiền tố URI cho Liên kết động của mình, hãy làm như vậy khi được nhắc.

    Nếu bạn đã có tiền tố URI liên kết động, hãy lưu ý đến nó. Bạn cần cung cấp miền Liên kết động khi tạo Liên kết động theo chương trình.

  3. Thư viện máy khách Firebase Dynamic Links C++ sử dụng lược đồ URL tùy chỉnh trên iOS để xử lý 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ợ nhận Liên kết động:
    1. Để mở cấu hình dự án của bạn, bấm đú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 từ phần MỤC TIÊU , sau đó chọn tab Thông tin và mở rộng phần Loại URL .
    2. Nhấp vào nút + và thêm lược đồ URL cho ID khách hàng đã đảo ngược của bạn. Để tìm giá trị này, hãy mở tệp cấu hình GoogleService-Info.plist và tìm khóa REVERSED_CLIENT_ID . Sao chép giá trị của khóa đó và dán vào hộp 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 + và thêm lược đồ URL thứ hai. ID này giống với ID gói ứng dụng của bạn. Ví dụ: nếu ID gói của bạn là com.example.ios , hãy nhập giá trị đó vào hộp Lược đồ URL . Bạn có thể tìm thấy ID gói ứng dụng của mình trong tab Chung của cấu hình dự án ( Identity > Bundle Identifier ).

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

Nếu bạn muốn tạo một Liên kết động 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 liên kết có thể được sử dụng trong nội dung nào đó như bài đăng trên mạng xã hội, cách đơn giản nhất là truy cập bảng điều khiển Firebase và tạo một liên kết theo cách thủ công theo mẫu từng bước.

Miền tùy chỉnh

Bạn có thể kiểm soát tốt hơn việc xây dựng thương hiệu của Liên kết động bằng cách sử dụng tên miền của riêng bạn thay vì tên miền phụ goo.gl hoặc page.link . Hãy làm theo các hướng dẫn sau để thiết lập miền tùy chỉnh cho dự án của bạn.

Sử dụng API liên kết động Firebase

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

Trước khi có thể tạo Liên kết động, bạn cần tạo và khởi tạo đối tượng firebase::App .

Bao gồm tệp tiêu đề cho firebase::App :

#include "firebase/app.h"

Phần tiếp theo khác nhau tùy thuộc vào nền tảng của bạn:

Android

Tạo firebase::App , chuyển môi trường JNI và tham chiếu dự án jobject việc đế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 tạo thư viện Liên kết động

Trước khi tạo Liên kết động, trước tiên bạn phải khởi tạo thư viện Liên kết động:

::firebase::dynamic_links::Initialize(app, null);

Tạo Liên kết động dài từ các tham số

Để tạo Liên kết động, hãy tạo đối tượng DynamicLinkComponents, đặt bất kỳ thành viên tùy chọn nào cho cấu hình bổ sung và chuyển nó tới dynamic_links::GetShortLink hoặc dynamic_links::GetLongLink .

Ví dụ tối thiểu sau đây tạo một Liên kết động dài tới 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 một liên kết động ngắn

Để tạo một Liên kết động ngắn, hãy chuyển một liên kết dài đã tạo trước đó tới GetShortLink hoặc xây dựng DynamicLinkComponents theo cách tương tự như trên.

GetShortLink tùy chọn lấy thêm 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 liên kết. Việc tạo một liên kết ngắn yêu cầu yêu cầu mạng tới phần phụ trợ Firebase, do đó 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 (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 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());
  }
}