تلقي الارتباطات الديناميكية باستخدام C++

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

تعمل حزمة C++ SDK لكل من 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 مخصصة إلى تطبيقك لدعم تلقي الروابط الديناميكية.

  1. لفتح تكوين مشروعك، انقر نقرًا مزدوجًا فوق اسم المشروع في عرض الشجرة الأيسر.

  2. حدد تطبيقك من قسم TARGETS ، ثم حدد علامة تبويب المعلومات ، ثم قم بتوسيع قسم أنواع عناوين URL .

  3. انقر فوق الزر + ، ثم قم بإضافة نظام URL لمعرف العميل المعكوس. للعثور على هذه القيمة:

    1. افتح ملف تكوين GoogleService-Info.plist ، ثم ابحث عن مفتاح REVERSED_CLIENT_ID .

    2. انسخ قيمة هذا المفتاح، ثم الصقها في مربع مخططات URL في صفحة التكوين.

    3. اترك الحقول الأخرى فارغة.

  4. انقر فوق الزر + ، ثم قم بإضافة نظام URL ثانٍ. هذا هو نفس معرف حزمة تطبيقك.

    على سبيل المثال، إذا كان معرف الحزمة الخاص بك هو com.example.ios ، فاكتب تلك القيمة في مربع أنظمة URL .

    يمكنك العثور على معرف حزمة تطبيقك في علامة التبويب "عام" في تكوين المشروع ( Identity > Bundle Identifier ).

تلقي ارتباط ديناميكي

إنشاء وتهيئة التطبيق

قبل أن تتمكن من التحقق من الروابط الديناميكية المستلمة، ستحتاج إلى إنشاء وتهيئة كائن firebase::App .

قم بتضمين ملف الرأس لـ firebase::App :

#include "firebase/app.h"

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

ذكري المظهر

قم بإنشاء 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"));

قم بتطبيق المستمع للتحقق من الروابط الديناميكية

للتحقق من وجود ارتباط ديناميكي تم استلامه، قم بتنفيذ واستخدام فئة firebase::dynamic_links::Listener .

قم بتضمين ملف الرأس لتلقي الارتباطات الديناميكية:

#include "firebase/dynamic_links.h"

تهيئة مكتبة الارتباطات الديناميكية:

::firebase::dynamic_links::Initialize(app, null);

قم بإنشاء كائن يقوم بتنفيذ firebase::dynamic_links::Listener ، وقم بتوفيره إلى مكتبة الارتباطات الديناميكية باستخدام SetListener() ، أو قم بتمريره كوسيطة ثانية إلى التهيئة .

لتلقي الارتباطات الديناميكية، يجب على فئة المستمع الخاصة بك تنفيذ الوظيفة الافتراضية 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());
  }
};