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

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

C++ SDK هم برای اندروید و هم برای iOS کار می‌کند و برای هر پلتفرم نیاز به تنظیمات اضافی است.

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

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

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

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

  • Firebase C++ SDK را به پروژه C++ خود اضافه کنید.

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

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

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

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

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

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

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

    2. مقدار آن کلید را کپی کنید، سپس آن را در کادر URL Schemes در صفحه پیکربندی قرار دهید.

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

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

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

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

دریافت لینک پویا

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

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

شامل فایل هدر برای firebase::App :

#include "firebase/app.h"

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

اندروید

firebase::App ایجاد کنید، محیط JNI و ارجاع jobject به فعالیت جاوا را به عنوان آرگومان بسازید:

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

iOS

ایجاد firebase::App :

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

برای بررسی پیوندهای پویا، Listener را پیاده سازی کنید

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

فایل هدر را برای دریافت پیوندهای پویا اضافه کنید:

#include "firebase/dynamic_links.h"

کتابخانه Dynamic Links را راه اندازی کنید :

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

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

برای دریافت پیوندهای پویا، کلاس Listener شما باید تابع مجازی OnDynamicLinkReceived را پیاده سازی کند. با نادیده گرفتن روش، می توانید یک پیوند عمیق دریافت کنید، اگر یکی دریافت شده باشد.

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