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

  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 «فعالیت جاوا» را به‌عنوان آرگومان ارسال کنید:

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

iOS

ایجاد firebase::App:

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

«شنونده» را برای بررسی 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، کلاس «شنونده» شما باید تابع مجازی 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());
  }
};