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

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

تعمل حزمة تطوير البرامج (SDK) بلغة C++ مع كلّ من Android و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 مخصّصة إلى تطبيقك لتتمكّن من تلقّي 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"

يختلف الجزء التالي حسب المنصة التي تستخدمها:

AndroidiOS

أنشئ firebase::App، مع تمرير بيئة JNI ومرجع jobject إلى نشاط Java كمعلَمات:

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