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

Firebase Dynamic Links API ile kısa veya uzun Dynamic Links oluşturabilirsiniz. API, bağlantı oluşturmak için isteğe bağlı birkaç parametre yapısı alır. Kısa bağlantılar, daha önce oluşturulmuş uzun bir bağlantıdan da oluşturulabilir. Firebase Dynamic Links şuna benzer bir URL oluşturur:

https://example.page.link/WXYZ

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

Başlamadan önce

Firebase Dynamic Links kullanmaya başlamak için şunları yapmanız gerekir:

  • C++ projenizi kaydedin ve Firebase'i kullanacak şekilde yapılandırın.

    C++ projeniz Firebase'i kullanıyorsa Firebase için zaten kayıtlı ve yapılandırılmıştır.

  • Firebase C++ SDK'sını C++ projenize ekleyin.

C++ projenize Firebase eklemek için hem Firebase konsolunda hem de açık C++ projenizde görevler gerçekleştirmeniz gerekir (ör. Firebase yapılandırma dosyalarını konsoldan indirip C++ projenize taşımanız gerekir).

Android

  1. Firebase konsolunda Dynamic Links bölümünü açın.
  2. Hizmet şartlarını henüz kabul etmediyseniz ve Dynamic Links için bir URI ön eki ayarlamadıysanız istendiğinde bunu yapın.

    Zaten bir Dynamic Links URI ön ekiniz varsa bunu not edin. Programatik olarak Dynamic Links oluştururken bir Dynamic Links URI ön eki 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. Bunu yaparak yetkisiz tarafların alanınızdan kontrol etmediğiniz sitelere yönlendiren Dynamic Links oluşturmasını engellersiniz. Belirli URL kalıplarına izin verme bölümünü inceleyin.

iOS

  1. Firebase konsolunda Dynamic Links bölümünü açın.
  2. Hizmet şartlarını henüz kabul etmediyseniz ve Dynamic Links için bir URI ön eki ayarlamadıysanız istendiğinde bunu yapın.

    Zaten bir Dynamic Links URI ön ekiniz varsa bunu not edin. Programatik olarak Dynamic Links oluştururken bir 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ı kullanır. Dynamic Links alma desteği sunmak için uygulamanıza özel URL şemaları eklemeniz gerekir:
    1. Proje yapılandırmanızı açmak için soldaki ağaç görünümünde proje adını çift tıklayın. TARGETS (HEDEFLER) bölümünden uygulamanızı seçin, ardından Info (Bilgi) sekmesini seçip URL Types (URL Türleri) bölümünü genişletin.
    2. + düğmesini tıklayın ve ters çevrilmiş istemci 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 kimlik, uygulamanızın paket kimliğiyle aynıdır. Örneğin, paket kimliğiniz com.example.ios ise bu değeri URL Şemaları kutusuna yazın. Uygulamanızın paket kimliğini, proje yapılandırmasının Genel sekmesinde (Kimlik > Paket Kimliği) bulabilirsiniz.

Firebase konsolunu kullanma

Test amacıyla veya pazarlama ekibinizin sosyal medya gönderisi gibi bir yerde kullanılabilecek bir bağlantıyı kolayca oluşturması için tek bir Dynamic Link oluşturmak istiyorsanız en basit yöntem, Firebase konsolunu ziyaret etmek ve adım adım formunu takip ederek manuel olarak bir tane oluşturmaktır.

Özel alanlar

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

Firebase Dynamic Links API'yi kullanma

Uygulama oluşturma ve ilk kullanıma hazırlama

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

firebase::App için üstbilgi dosyasını ekleyin:

#include "firebase/app.h"

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

Android

JNI ortamını ve Java etkinliğine 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 oluşturun:

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

Dynamic Links kitaplığını başlatma

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

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

Parametrelerden uzun Dynamic Link oluşturuluyor

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

Aşağıdaki minimal örnekte, Android uygulamanız com.example.android.package_name ve iOS uygulamanız com.example.ios ile açılan https://www.example.com/ için uzun bir Dynamic Link oluşturulmaktadır:

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 Dynamic Link oluşturmak için daha önce oluşturulmuş uzun bir bağlantıyı GetShortLink yöntemine iletin veya yukarıdakiyle aynı şekilde DynamicLinkComponents oluşturun.

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

Ö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ı her güncellemede 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());
  }
}