دریافت «پیوندهای پویا» با C++‎

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

کیت توسعه نرم‌افزار C++‎ هم برای Android و هم برای iOS کار می‌کند، اما برای هر پلاتفرم به چند تنظیم اضافی نیاز است.

قبل از شروع

پیش‌از اینکه بتوانید از Firebase Dynamic Links استفاده کنید، باید:

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

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

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

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

افزودن طرح‌واره‌های نشانی وب سفارشی (فقط برای iOS)

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

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

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

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

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

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

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

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

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

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

درحال دریافت Dynamic Link

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

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

فایل سرایند را برای firebase::App اضافه کنید:

#include "firebase/app.h"

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

Android

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

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

iOS

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 را پیاده‌سازی کند. با لغو کردن روش، می‌توانید پیوند عمیق دریافت کنید، اگر پیوندی دریافت شده باشد.

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