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

כדי לקבל את Firebase Dynamic Links שיצרתם, אתם צריכים לכלול את 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 בלבד)

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

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

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

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

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

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

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

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

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

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

קבלת 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, צריך להטמיע את הפונקציה הווירטואלית 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());
  }
};