تلقي الروابط الديناميكية مع 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 ومشروع 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());
  }
};