Anda dapat membuat Dynamic Links 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 akan 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 perlu:
Mendaftarkan project C++ Anda dan mengonfigurasinya agar 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 memerlukan tindakan baik di Firebase console maupun di project C++ yang terbuka (misalnya, Anda mendownload file konfigurasi Firebase dari konsol, lalu memindahkannya ke project C++).
Android
- Di Firebase console, buka bagian Dynamic Links.
Jika Anda belum menyetujui persyaratan layanan dan menetapkan awalan URI untuk Dynamic Links, lakukanlah saat diminta.
Jika Anda sudah memiliki awalan URI Dynamic Links, catatlah. Anda harus menyediakan awalan URI Dynamic Links ketika membuat Dynamic Links secara terprogram.
- Direkomendasikan: Tentukan pola URL yang diizinkan di deep link dan link fallback. Dengan begitu, pihak yang tidak diberi otorisasi tidak dapat membuat Dynamic Links yang mengalihkan pengguna dari domain Anda ke situs yang tidak Anda kontrol. Lihat Pola URL yang diizinkan.
iOS
- Di Firebase console, buka bagian Dynamic Links.
Jika Anda belum menyetujui persyaratan layanan dan menetapkan awalan URI untuk Dynamic Links, lakukanlah saat diminta.
Jika Anda sudah memiliki awalan URI Dynamic Links, catatlah. Anda harus menyediakan domain Dynamic Links ketika membuat Dynamic Links secara terprogram.
- 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 Links:
- 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.
- Klik tombol +, lalu tambahkan skema URL untuk ID klien terbalik Anda. Untuk menemukan nilai ini, buka file konfigurasi
, lalu cari kunciGoogleService-Info.plist REVERSED_CLIENT_ID
. Salin nilai kunci tersebut, lalu tempelkan ke kotak URL Schemes di halaman konfigurasi. Biarkan kolom lainnya kosong. - 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 melakukan inisialisasi Aplikasi
Sebelum dapat membuat Dynamic Links, Anda harus membuat dan melakukan inisialisasi 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"));
Melakukan inisialisasi library Dynamic Links
Sebelum membuat Dynamic Link, Anda harus melakukan inisialisasi 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()); } }