קבלת קישורים דינמיים באמצעות C++

כדי לקבל את Firebase Dynamic Links שיצרתם, עליכם לכלול את Dynamic Links SDK באפליקציה וליצור אובייקט firebase::dynamic_links::Listener שמטמיע את הפונקציה הווירטואלית OnDynamicLinkReceived.

ה-SDK של C++ פועל גם ב-Android וגם ב-iOS, אבל צריך לבצע הגדרות נוספות לכל פלטפורמה.

לפני שמתחילים

כדי להשתמש ב-Firebase Dynamic Links, צריך:

  • רושמים את פרויקט ה-C++ ומגדירים אותו לשימוש ב-Firebase.

    אם כבר משתמשים ב-Firebase בפרויקט C++‎, הוא כבר רשום ב-Firebase ועבר הגדרה.

  • מוסיפים את Firebase C++ SDK לפרויקט ב-C++.

חשוב לזכור שהוספת Firebase לפרויקט C++‎ כוללת משימות גם במסוף Firebase וגם בפרויקט הפתוח ב-C++‎ (לדוגמה, מורידים קובצי תצורה של Firebase מהמסוף ומעבירים אותם לפרויקט ב-C++‎).

הוספת סכימות של כתובות URL בהתאמה אישית (ל-iOS בלבד)

ספריית הלקוח Firebase Dynamic Links עבור C++‎ משתמשת בסכמות בהתאמה אישית של כתובות URL ב-iOS כדי לעבד קישורים. כדי לתמוך בקבלת Dynamic Links, צריך להוסיף לאפליקציה סכמות מותאמות אישית של כתובות URL.

  1. כדי לפתוח את הגדרות הפרויקט, לוחצים לחיצה כפולה על שם הפרויקט בתצוגת העץ הימנית.

  2. בוחרים את האפליקציה בקטע TARGETS, ואז בוחרים בכרטיסייה Info ומרחיבים את הקטע URL Types.

  3. לוחצים על הלחצן + ומוסיפים סכימה של כתובת URL למזהה הלקוח ההפוך. כדי למצוא את הערך הזה:

    1. פותחים את קובץ התצורה GoogleService-Info.plist ומחפשים את המפתח REVERSED_CLIENT_ID.

    2. מעתיקים את הערך של המפתח הזה ומדביקים אותו בתיבה URL Schemes בדף התצורה.

    3. משאירים את שאר השדות ריקים.

  4. לוחצים על הלחצן + ומוסיפים סכימה שנייה של כתובות URL. המזהה הזה זהה למזהה החבילה של האפליקציה.

    לדוגמה, אם מזהה החבילה הוא com.example.ios, מקלידים את הערך הזה בתיבה URL Schemes.

    מזהה החבילה של האפליקציה מופיע בכרטיסייה General של הגדרות הפרויקט (Identity > Bundle Identifier).

קבלת 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 במחלקת ה-Listener. שינוי השיטה מאפשר לקבל קישור עומק, אם קיבלתם קישור כזה.

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());
  }
};