קבלת קישורים דינמיים באמצעות 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. בוחרים את האפליקציה בקטע TARGETS, ואז בוחרים בכרטיסייה Info ומרחיבים את הקטע URL Types.

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

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

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

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

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

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

    מזהה החבילה של האפליקציה מופיע בכרטיסייה 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"));

הטמעת 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(), או להעביר אותו כארגומנט השני אתחול.

כדי לקבל את 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());
  }
};