C++ ile Dinamik Bağlantılar alma

Oluşturduğunuz Firebase Dynamic Links öğesini almak için uygulamanıza Dynamic Links SDK'sını eklemeniz ve OnDynamicLinkReceived sanal işlevini uygulayan bir firebase::dynamic_links::Listener nesnesi oluşturmanız gerekir.

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

Özel URL şemaları ekleme (yalnızca iOS için)

Firebase Dynamic Links C++ istemci kitaplığı, bağlantıları işlemek için iOS'te özel URL şemaları kullanır. Dynamic Links alma işlemini desteklemek 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.

  2. TARGETS (HEDEFLER) bölümünden uygulamanızı seçin, ardından Info (Bilgi) sekmesini seçin ve URL Types (URL Türleri) bölümünü genişletin.

  3. + düğmesini tıklayın, ardından ters çevrilmiş istemci kimliğiniz için bir URL şeması ekleyin. Bu değeri bulmak için:

    1. GoogleService-Info.plist yapılandırma dosyasını açın, ardından REVERSED_CLIENT_ID anahtarını bulun.

    2. Bu anahtarın değerini kopyalayın ve yapılandırma sayfasındaki URL Şemaları kutusuna yapıştırın.

    3. Diğer alanları boş bırakın.

  4. + düğmesini tıklayın, ardından 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.

Dynamic Link alınıyor

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

Alınan Dynamic Links olup olmadığını kontrol edebilmek için bir firebase::App nesnesi oluşturup ilk kullanıma hazırlamanı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 için kontrol etmek üzere dinleyiciyi uygulayın

Alınan bir Dynamic Link olup olmadığını kontrol etmek için firebase::dynamic_links::Listener sınıfını uygulayın ve kullanın.

Dynamic Links almak için üstbilgi dosyasını ekleyin:

#include "firebase/dynamic_links.h"

Dynamic Links kitaplığını başlatın:

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

firebase::dynamic_links::Listener uygulayan bir nesne oluşturun ve bunu SetListener() ile Dynamic Links kitaplığına sağlayın veya Initialize için ikinci bağımsız değişken olarak iletin.

Dynamic Links almak için Listener sınıfınızın OnDynamicLinkReceived sanal işlevini uygulaması gerekir. Yöntemi geçersiz kılarak, alınmışsa derin bağlantı alabilirsiniz.

class Listener : public firebase::dynamic_links::Listener {
 public:
  // Called on the client when a dynamic link arrives.
  void OnDynamicLinkReceived(
      const firebase::dynamic_links::DynamicLink* dynamic_link) override {
    printf("Received link: %s", dynamic_link->url.c_str());
  }
};