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

لتلقّي Firebase Dynamic Links التي أنشأتها، عليك تضمين حزمة تطوير البرامج (SDK) لـ 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 console وفي مشروع C++ المفتوح (على سبيل المثال، يمكنك تنزيل ملفات إعداد Firebase من وحدة التحكّم، ثم نقلها إلى مشروع C++).

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

تستخدم مكتبة عملاء C++ لـ Firebase Dynamic Links مخططات عناوين 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"));

تنفيذ أداة الاستماع للبحث عن 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());
  }
};