تلقي الروابط الديناميكية مع C++

لتلقّي Firebase Dynamic Links الذي أنشأته، يجب تضمين حزمة تطوير البرامج (SDK) لـ Dynamic Links في تطبيقك وإنشاء عنصر firebase::dynamic_links::Listener ينفّذ الدالة الافتراضية OnDynamicLinkReceived.

تعمل حزمة تطوير البرامج (SDK) لـ C++‎ مع كل من Android وiOS، مع بعض الإعدادات الإضافية المطلوبة لكل نظام أساسي.

قبل البدء

قبل أن تتمكّن من استخدام Firebase Dynamic Links، عليك تنفيذ ما يلي:

  • سجِّل مشروع C++‎ وأعدَّه لاستخدام Firebase.

    إذا كان مشروعك المكتوب بلغة C++‎ يستخدم Firebase حاليًا، يعني ذلك أنّه مسجَّل ومُعدّ مسبقًا لاستخدام Firebase.

  • أضِف حزمة تطوير البرامج (SDK) لـ Firebase C++ إلى مشروعك بلغة C++‎.

يُرجى العِلم أنّ إضافة Firebase إلى مشروع C++‎ تتضمّن مهامًا في كلّ من وحدة تحكّم Firebase ومشروع C++‎ المفتوح (على سبيل المثال، يمكنك تنزيل ملفات إعدادات Firebase من وحدة التحكّم، ثم نقلها إلى مشروع C++‎).

إضافة مخطّطات عناوين URL مخصّصة (لنظام التشغيل iOS فقط)

تستخدم مكتبة عميل Firebase Dynamic Links C++‎ مخطّطات عناوين URL مخصّصة على نظام التشغيل iOS لمعالجة الروابط. عليك إضافة مخطّطات عناوين URL مخصّصة إلى تطبيقك لإتاحة تلقّي Dynamic Links.

  1. لفتح إعدادات مشروعك، انقر مرّتين على اسم المشروع في العرض التدرّجي للحساب على اليمين.

  2. اختَر تطبيقك من قسم الأهداف، ثم اختَر علامة التبويب المعلومات، ثم وسِّع قسم أنواع عناوين URL.

  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"

يختلف الجزء التالي حسب النظام الأساسي:

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، وأضِفه إلى مكتبة Dynamic Links باستخدام SetListener()، أو مرِّره كوسيطة ثانية إلى 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());
  }
};