C++ ile Dinamik Bağlantılar Oluşturma

Firebase Dynamic Links API'si ile kısa veya uzun Dynamic Links oluşturabilirsiniz. API, bağlantı oluşturmak için çeşitli isteğe bağlı parametre yapılarını kullanır. Kısa bağlantılar, daha önce oluşturulmuş uzun bir bağlantıdan da oluşturulabilir. Firebase Dynamic Links aşağıdakine benzer bir URL oluşturur:

https://example.page.link/WXYZ

C++ SDK'sı hem Android hem de iOS'ta çalışır. Ancak her platform için ek kurulum yapılması gerekir.

Başlamadan önce

Firebase Dynamic Links kullanabilmek için:

Firebase'i C++ projenize eklemenin hem Firebase konsolda hem de açık C++ projenizde görevler içerdiğini unutmayın (örneğin, Firebase yapılandırma dosyalarını konsoldan indirip C++ projenize taşırsınız).

Android

  1. Firebase konsolunda Dynamic Links bölümünü açın.
  2. Henüz hizmet şartlarını kabul etmediyseniz ve Dynamic Links için bir URI öneki ayarlamadıysanız istendiğinde bu işlemleri yapın.

    Zaten bir Dynamic Links URI önekine sahipseniz bunu not edin. Dynamic Links'yı programatik olarak oluştururken Dynamic Links URI öneki sağlamanız gerekir.

  3. Önerilen: Derin bağlantılarınızda ve yedek bağlantılarınızda izin verilen URL kalıplarını belirtin. Bu sayede, yetkisiz tarafların alanınızdan kontrol etmediğiniz sitelere yönlendiren Dynamic Links oluşturmasını önlersiniz. Belirli URL kalıplarına izin verme başlıklı makaleyi inceleyin.

iOS

  1. Firebase konsolunda Dynamic Links bölümünü açın.
  2. Henüz hizmet şartlarını kabul etmediyseniz ve Dynamic Links için bir URI öneki ayarlamadıysanız istendiğinde bu işlemleri yapın.

    Zaten bir Dynamic Links URI önekine sahipseniz bunu not edin. Dynamic Links öğesini programatik olarak oluştururken Dynamic Links alanı sağlamanız gerekir.

  3. Firebase Dynamic Links C++ istemci kitaplığı, bağlantıları işlemek için iOS'te özel URL şemalarını kullanır. Dynamic Links alma desteği için uygulamanıza özel URL şemaları eklemeniz gerekir:
    1. Proje yapılandırmanızı açmak için sol ağaç görünümünde proje adını çift tıklayın. HEDEFLER bölümünde uygulamanızı seçin, ardından Bilgi sekmesini seçin ve URL Türleri bölümünü genişletin.
    2. + düğmesini tıklayın ve tersine çevrilmiş müşteri kimliğiniz için bir URL şeması ekleyin. Bu değeri bulmak için GoogleService-Info.plist yapılandırma dosyasını açın ve REVERSED_CLIENT_ID anahtarını bulun. Bu anahtarın değerini kopyalayın ve yapılandırma sayfasındaki URL Şemaları kutusuna yapıştırın. Diğer alanları boş bırakın.
    3. + düğmesini tıklayın ve ikinci bir URL şeması ekleyin. Bu, uygulamanızın paket kimliğiyle aynıdır. Örneğin, paket kimliğiniz com.example.ios ise bu değeri URL Şemaları kutusuna girin. Uygulamanızın paket kimliğini, proje yapılandırmasının Genel sekmesinde (Kimlik > Paket Kimliği) bulabilirsiniz.

Firebase konsolunu kullanma

İster test amacıyla ister pazarlama ekibinizin sosyal medya gönderisi gibi yerlerde kullanılabilecek bir bağlantıyı kolayca oluşturması için tek bir Dynamic Link oluşturmak istiyorsanız en basit yol, Firebase konsolunu ziyaret edip adım adım formu izleyerek manuel olarak oluşturmaktır.

Özel alanlar

goo.gl veya page.link alt alanı yerine kendi alanınızı kullanarak Dynamic Link markanız üzerinde daha fazla kontrol sahibi olabilirsiniz. Projeniz için özel alan adı ayarlamak üzere buradaki talimatları uygulayın.

Firebase Dynamic Links API'yi kullanma

Uygulama oluşturma ve başlatma

Dynamic Links oluşturabilmek için firebase::App nesnesi oluşturup başlatmanız gerekir.

firebase::App için başlık dosyasını ekleyin:

#include "firebase/app.h"

Sonraki bölüm, platformunuza göre değişir:

Android

JNI ortamını ve Java etkinliğine yönelik bir jobject referansını bağımsız değişken olarak ileterek firebase::App oluşturun:

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

iOS

firebase::App etiketini oluşturun:

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

Dynamic Links kitaplığı başlatılıyor

Dynamic Link oluşturmadan önce Dynamic Links kitaplığını başlatmanız gerekir:

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

Parametrelerden uzun Dynamic Link oluşturma

Dinamik Bağlantı oluşturmak için DynamicLinkComponents nesnesi oluşturun, ek yapılandırma için isteğe bağlı üyeleri ayarlayın ve nesneyi dynamic_links::GetShortLink veya dynamic_links::GetLongLink'ye iletin.

Aşağıdaki minimum örnek, https://www.example.com/ adresine yönlendiren ve com.example.android.package_name Android uygulamanız ile com.example.ios iOS uygulamanızla açılan uzun bir dinamik bağlantı oluşturur:

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

Shorts videosu oluşturma Dynamic Link

Kısa bir dinamik bağlantı oluşturmak için daha önce oluşturulmuş uzun bir bağlantıyı GetShortLink iletin veya yukarıdakiyle aynı şekilde DynamicLinkComponents oluşturun.

GetShortLink isteğe bağlı olarak PathLength ile birlikte ek bir DynamicLinkOptions yapılandırma parametresi alır. Bu, bağlantının nasıl oluşturulacağını kontrol etmenizi sağlar. Kısa bağlantı oluşturmak için Firebase arka ucuna ağ isteği gönderilmesi gerekir. Bu nedenle GetShortLink, Future<GeneratedLink> döndüren eşzamansız bir işlemdir.

Örneğin:

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

Programınızda düzenli olarak çalışan bir güncelleme döngüsü varsa (örneğin, saniyede 30 veya 60 kez) sonuçları güncelleme başına bir kez kontrol edebilirsiniz:

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