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 birkaç isteğe bağlı parametre yapısı kullanır. Daha önce oluşturulmuş uzun bir bağlantıdan da kısa bağlantı oluşturabilirsiniz. Firebase Dynamic Links aşağıdaki gibi bir URL oluşturur:

https://example.page.link/WXYZ

C++ SDK'sı hem Android hem de iOS için çalışır. Her platform için bazı ek kurulumlar gerekir.

Başlamadan önce

Firebase Dynamic Links özelliğini kullanabilmek için:

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

    C++ projeniz zaten Firebase kullanıyorsa Firebase için kaydedilmiş ve yapılandırılmış demektir.

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

Firebase'i C++ projenize eklemenin hem Firebase konsolunda 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. 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 önekiniz varsa bunu not edin. Dynamic Links'yi programatik olarak 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. Bu sayede, yetkisiz tarafların alanınızdan kontrol etmediğiniz sitelere yönlendiren Dynamic Links oluşturmasını engellemiş olursunuz. URL kalıplarını beyaz listeye ekleme konusuna bakın.

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. Dynamic Links'ü programatik olarak 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ını kullanır. Dynamic Links alımını desteklemek 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ünden 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 ters çevrilmiş istemci kimliğiniz için bir URL şeması ekleyin. Bu değeri bulmak için GoogleService-Info.plistyapılandırma dosyasını açıp REVERSED_CLIENT_ID anahtarını bulun. Bu anahtarın değerini kopyalayıp 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 yazın. Uygulamanızın paket kimliğini, proje yapılandırmasının Genel sekmesinde (Kimlik > Paket Tanımlayıcı) bulabilirsiniz.

Firebase konsolunu kullanma

Test amacıyla veya pazarlama ekibinizin sosyal medya yayını 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 edip adım adım açıklamalı formu takip ederek manuel olarak bir bağlantı oluşturmaktır.

Özel alanlar

goo.gl veya page.link alt alanı yerine kendi alanınızı kullanarak Dynamic Link ile ilişkili marka öğeleri üzerinde daha fazla kontrol sahibi olabilirsiniz. Projeniz için özel alan oluşturmak üzere bu talimatları uygulayın.

Firebase Dynamic Links API'yi kullanma

Uygulama oluşturma ve uygulamayı başlatma

Dynamic Links oluşturmadan önce bir 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 ait bir jobject referansını bağımsız değişken olarak ileterek firebase::App öğesini oluşturun:

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

iOS

firebase::App öğesini 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ı ilk kullanıma hazırlamanız gerekir:

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

Parametrelerden uzun bir Dynamic Link oluşturma

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

Aşağıdaki minimal örnek, https://www.example.com/ adresine uzun bir dinamik bağlantı oluşturur. Bu bağlantı, com.example.android.package_name Android uygulamanız ve com.example.ios iOS uygulamanızla açılı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 dinamik bağlantı oluşturmak için önceden oluşturulmuş uzun bir bağlantıyı GetShortLink'e iletin veya yukarıdaki gibi 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 etmenize olanak tanır. Kısa bağlantı oluşturmak için Firebase arka ucuna bir ağ isteği gönderilmesi gerekir. Bu nedenle GetShortLink asynkrondur ve bir 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 (ör. 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());
  }
}