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

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

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

לפני שאתה מתחיל

לפני שתוכל להשתמש Firebase דינמי קישורים , עליך:

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

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

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

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

הוסף תוכניות URL מותאמות אישית (עבור iOS בלבד)

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

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

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

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

    1. פתח את GoogleService-Info.plist קובץ תצורה, ולאחר מכן חפש את REVERSED_CLIENT_ID המפתח.

    2. העתק את הערך של המפתח, ולאחר מכן להדביק אותו לתוך URL הקמעונות בדף התצורה.

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

  4. לחץ על הלחצן +, ולאחר מכן להוסיף ערכת URL שנייה. זה זהה לזהות החבילה של האפליקציה שלך.

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

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

קבלת קישור דינמי

צור ואתחל את האפליקציה

לפני שתוכל לבדוק קבלנו דינמי קישורים, עליך ליצור לאתחל firebase::App אובייקט.

כלול את קובץ הכותרת firebase::App :

#include "firebase/app.h"

החלק הבא משתנה בהתאם לפלטפורמה שלך:

דְמוּי אָדָם

צור את firebase::App , עובר בסביבה JNI וכן jobject התייחסות פעילות ג'אווה כמו טיעונים:

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);

iOS

צור את 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());
  }
};