Membuat Dynamic Links dengan C++

Anda dapat membuat Dynamic Link pendek atau panjang dengan Firebase Dynamic Links API. API ini mengambil beberapa struktur parameter opsional untuk membuat link. Link pendek juga dapat dibuat dari link panjang yang sudah dibuat sebelumnya. Firebase Dynamic Links menghasilkan URL seperti berikut:

https://example.page.link/WXYZ

C++ SDK dapat digunakan di Android dan iOS, dengan sejumlah penyiapan tambahan di tiap platform.

Sebelum memulai

Sebelum dapat menggunakan Firebase Dynamic Links, Anda harus:

  • Mendaftarkan project C++ Anda dan mengonfigurasikannya untuk menggunakan Firebase.

    Jika project C++ Anda telah menggunakan Firebase, berarti project tersebut telah terdaftar dan dikonfigurasikan untuk Firebase.

  • Tambahkan Firebase C++ SDK ke project C++ Anda.

Perlu diperhatikan bahwa penambahan Firebase ke project C++ Anda melibatkan tugas di Firebase console dan di project C++ terbuka (misalnya, Anda mendownload file konfigurasi Firebase dari konsol, lalu memindahkannya ke project C++).

Android

  1. Di Firebase console, buka bagian Dynamic Links.
  2. Jika Anda belum menyetujui persyaratan layanan dan menetapkan domain untuk Dynamic Links, lakukanlah saat diminta.

    Jika Anda sudah memiliki domain Dynamic Links, catatlah. Anda harus menyediakan domain Dynamic Links ketika membuat Dynamic Links secara terprogram.

  3. Direkomendasikan: Tentukan pola URL yang diizinkan di deep link dan link fallback. Dengan melakukan tindakan tersebut, Anda mencegah pihak yang tidak diberi otorisasi agar tidak membuat Dynamic Links, yang mengalihkan dari domain Anda ke situs yang tidak Anda kontrol. Lihat Pola URL yang diizinkan.

iOS

  1. Di Firebase console, buka bagian Dynamic Links.
  2. Jika Anda belum menyetujui persyaratan layanan dan menetapkan domain untuk Dynamic Links, lakukanlah saat diminta.

    Jika Anda sudah memiliki domain Dynamic Links, catatlah. Anda harus menyediakan domain Dynamic Links ketika membuat Dynamic Links secara terprogram.

  3. Library klien Firebase Dynamic Links C++ menggunakan skema URL kustom di iOS untuk memproses link. Anda harus menambahkan skema URL khusus ke aplikasi Anda untuk mendukung penerimaan Dynamic Links:
    1. Untuk membuka konfigurasi project Anda, klik dua kali nama project dalam tampilan hierarki di sebelah kiri. Pilih aplikasi dari bagian TARGET, kemudian pilih tab Info dan perluas bagian Jenis URL.
    2. Klik tombol +, lalu tambahkan skema URL untuk ID klien terbalik Anda. Untuk menemukan nilai ini, buka file konfigurasi GoogleService-Info.plist, lalu cari kunci REVERSED_CLIENT_ID. Salin nilai kunci tersebut dan tempelkan ke dalam kotak Skema URL pada halaman konfigurasi. Biarkan kolom lainnya kosong.
    3. Klik tombol + lalu tambahkan skema URL kedua. Skema ini sama dengan ID paket aplikasi Anda. Misalnya, jika ID paket Anda adalah com.example.ios, tuliskan nilai tersebut ke kotak Skema URL. Anda dapat menemukan ID paket aplikasi dalam tab Umum di konfigurasi project (Identitas > ID Paket).

Menggunakan Firebase console

Jika Anda ingin membuat Dynamic Link tunggal, baik untuk tujuan pengujian, atau agar tim pemasaran Anda dapat dengan mudah membuat link untuk digunakan pada sesuatu, seperti postingan media sosial, cara yang paling mudah adalah dengan mengunjungi Firebase console dan membuatnya secara manual dengan mengikuti petunjuk langkah demi langkah.

Menggunakan Firebase Dynamic Links API

Membuat dan menginisialisasi Aplikasi

Agar dapat membuat Dynamic Links, Anda harus membuat dan menginisialisasi objek firebase::App.

Sertakan file header untuk firebase::App:

#include "firebase/app.h"

Bagian berikutnya bervariasi, bergantung pada platform Anda:

Android

Buat firebase::App dengan meneruskan lingkungan JNI dan referensi jobject ke Java Activity sebagai argumen:

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

iOS

Buat firebase::App:

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

Menginisialisasi library Dynamic Links

Sebelum membuat Dynamic Links, Anda harus menginisialisasi library Dynamic Links terlebih dahulu:

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

Membuat Dynamic Link panjang dari parameter

Untuk membuat Dynamic Link, buat objek DynamicLinkComponents, dengan menyetel salah satu anggota opsional untuk konfigurasi tambahan, lalu meneruskannya ke dynamic_links::GetShortLink atau dynamic_links::GetLongLink.

Contoh minimal berikut membuat Dynamic Link panjang ke https://www.example.com/ yang terbuka dengan com.example.android.package_name untuk aplikasi Android dan com.example.ios untuk aplikasi 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);

Membuat Dynamic Link pendek

Untuk membuat Dynamic Link pendek, teruskan link panjang yang dihasilkan sebelumnya ke GetShortLink atau buat DynamicLinkComponents dengan cara yang sama seperti di atas.

GetShortLink secara opsional menggunakan parameter konfigurasi DynamicLinkOptions ekstra dengan PathLength; ini memungkinkan Anda untuk mengontrol cara membuat link. Menghasilkan link pendek memerlukan permintaan jaringan ke backend Firebase, sehingga GetShortLink jadi asinkron, dan menampilkan Future<GeneratedLink>.

Misalnya:

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);

Jika program Anda memiliki loop update yang berjalan secara teratur (misalnya 30 atau 60 kali per detik), Anda dapat memeriksa hasilnya satu kali per update:

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());
  }
}

Kirim masukan tentang...

Butuh bantuan? Kunjungi halaman dukungan kami.