دریافت لینک های پویا با ++C

برای دریافت Firebase Dynamic Links که ایجاد کرده‌اید ، باید SDK Dynamic Links در برنامه خود بگنجانید و یک شیء firebase::dynamic_links::Listener ایجاد کنید که تابع مجازی OnDynamicLinkReceived را پیاده‌سازی می‌کند.

کیت توسعه نرم‌افزار (SDK) سی‌پلاس‌پلاس هم برای اندروید و هم برای iOS کار می‌کند، البته برای هر پلتفرم به تنظیمات اضافی نیاز است.

قبل از اینکه شروع کنی

قبل از اینکه بتوانید Firebase Dynamic Links استفاده کنید، باید:

  • پروژه ++C خود را ثبت کنید و آن را برای استفاده از Firebase پیکربندی کنید.

    اگر پروژه ++C شما از قبل از Firebase استفاده می‌کند، پس از قبل برای Firebase ثبت و پیکربندی شده است.

  • کیت توسعه نرم‌افزاری Firebase C++ را به پروژه C++ خود اضافه کنید.

توجه داشته باشید که اضافه کردن Firebase به پروژه C++ شما شامل وظایفی هم در کنسول Firebase و هم در پروژه C++ باز شما می‌شود (برای مثال، شما فایل‌های پیکربندی Firebase را از کنسول دانلود می‌کنید، سپس آنها را به پروژه C++ خود منتقل می‌کنید).

اضافه کردن طرح‌های URL سفارشی (فقط برای iOS)

کتابخانه کلاینت Firebase Dynamic Links در زبان برنامه‌نویسی ++C از طرح‌های URL سفارشی در iOS برای پردازش لینک‌ها استفاده می‌کند. برای پشتیبانی از دریافت Dynamic Links ، باید طرح‌های URL سفارشی را به برنامه خود اضافه کنید.

  1. برای باز کردن پیکربندی پروژه خود، روی نام پروژه در نمای درختی سمت چپ دوبار کلیک کنید.

  2. برنامه خود را از بخش TARGETS انتخاب کنید، سپس تب Info را انتخاب کنید، و سپس بخش URL Types را باز کنید.

  3. روی دکمه + کلیک کنید، سپس یک طرح URL برای شناسه کلاینت معکوس خود اضافه کنید. برای یافتن این مقدار:

    1. فایل پیکربندی GoogleService-Info.plist را باز کنید، سپس به دنبال کلید REVERSED_CLIENT_ID بگردید.

    2. مقدار آن کلید را کپی کنید، سپس آن را در کادر طرح‌های URL در صفحه پیکربندی جایگذاری کنید.

    3. فیلدهای دیگر را خالی بگذارید.

  4. روی دکمه + کلیک کنید، سپس یک طرح URL دوم اضافه کنید. این طرح با شناسه بسته برنامه شما یکسان است.

    برای مثال، اگر شناسه بسته شما com.example.ios است، آن مقدار را در کادر طرح‌های URL تایپ کنید.

    می‌توانید شناسه بسته برنامه خود را در برگه عمومی پیکربندی پروژه ( هویت > شناسه بسته ) پیدا کنید.

دریافت Dynamic Link

ایجاد و مقداردهی اولیه برنامه

قبل از اینکه بتوانید Dynamic Links دریافتی را بررسی کنید، باید یک شیء firebase::App ایجاد و مقداردهی اولیه کنید.

فایل هدر مربوط به firebase::App اضافه کنید:

#include "firebase/app.h"

بخش بعدی بسته به پلتفرم شما متفاوت است:

اندروید

firebase::App را ایجاد کنید و محیط JNI و یک ارجاع jobject را به عنوان آرگومان به Java Activity ارسال کنید:

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

آی‌او‌اس

ایجاد firebase::App :

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

پیاده‌سازی شنونده (Listener) برای بررسی Dynamic Links

برای بررسی دریافت Dynamic Link ، کلاس firebase::dynamic_links::Listener را پیاده‌سازی و استفاده کنید.

فایل هدر برای دریافت Dynamic Links را اضافه کنید:

#include "firebase/dynamic_links.h"

کتابخانه Dynamic Links را مقداردهی اولیه کنید :

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

یک شیء ایجاد کنید که firebase::dynamic_links::Listener را پیاده‌سازی کند و آن را با SetListener() به کتابخانه Dynamic Links ارائه دهید، یا آن را به عنوان آرگومان دوم به Initialize ارسال کنید.

برای دریافت Dynamic Links ، کلاس Listener شما باید تابع مجازی OnDynamicLinkReceived را پیاده‌سازی کند. با بازنویسی این متد، می‌توانید یک لینک عمیق (deep link) را دریافت کنید، البته اگر قبلاً دریافت شده باشد.

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