Membuat Dynamic Link 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 dihasilkan sebelumnya. Firebase Dynamic Links menghasilkan URL seperti berikut:

https://example.page.link/WXYZ

C++ SDK dapat digunakan untuk 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 dikonfigurasi untuk Firebase.

  • Menambahkan 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 awalan URI untuk Dynamic Link, lakukanlah saat diminta.

    Jika Anda sudah memiliki awalan URI Dynamic Links, catatlah. Anda harus menyediakan awalan URI Dynamic Links ketika membuat Dynamic Link secara terprogram.

  3. Direkomendasikan: Tentukan pola URL yang diizinkan di deep link dan link fallback. Dengan begitu, pihak yang tidak diberi otorisasi tidak dapat membuat Dynamic Link yang mengalihkan pengguna 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 awalan URI untuk Dynamic Link, lakukanlah saat diminta.

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

  3. Library klien Firebase Dynamic Links C++ menggunakan skema URL kustom di iOS untuk memproses link. Anda harus menambahkan skema URL kustom ke aplikasi Anda untuk mendukung penerimaan Dynamic Link:
    1. Untuk membuka konfigurasi project Anda, klik dua kali nama project dalam tampilan hierarki di sebelah kiri. Pilih aplikasi dari bagian TARGETS, kemudian pilih tab Info dan perluas bagian URL Types.
    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, lalu tempelkan ke kotak URL Schemes di 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, ketikkan nilai tersebut ke dalam kotak URL Schemes. Anda dapat menemukan ID paket aplikasi dalam tab General di konfigurasi project (Identity > Bundle Identifier).

Menggunakan Firebase console

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

Domain kustom

Anda dapat memiliki kontrol yang lebih besar atas branding Dynamic Link dengan menggunakan domain Anda sendiri, bukan subdomain goo.gl atau page.link. Ikuti petunjuk ini guna menyiapkan domain kustom untuk project Anda.

Menggunakan Firebase Dynamic Links API

Membuat dan menginisialisasi Aplikasi

Sebelum dapat membuat Dynamic Link, 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 Aktivitas Java 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 Link, 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, setel konfigurasi tambahan untuk anggota opsional, lalu teruskan 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 build DynamicLinkComponents dengan cara yang sama seperti di atas.

GetShortLink secara opsional membutuhkan parameter konfigurasi DynamicLinkOptions tambahan dengan PathLength. Dengan demikian, Anda dapat mengontrol cara pembuatan link. Membuat link pendek memerlukan permintaan jaringan ke backend Firebase, jadi GetShortLink bersifat asinkron, dan menampilkan Future<GeneratedLink>.

Contoh:

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