כדי לקבל את 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 בהתאמה אישית.
כדי לפתוח את הגדרות הפרויקט, לוחצים לחיצה כפולה על שם הפרויקט בתצוגת העץ בצד ימין.
בוחרים את האפליקציה בקטע יעדים, ואז בוחרים בכרטיסייה מידע ומרחיבים את הקטע סוגי כתובות URL.
לוחצים על הלחצן + ומוסיפים תוכנית כתובות URL למזהה הלקוח ההפוך. כדי למצוא את הערך הזה:
פותחים את קובץ ההגדרות
ומחפשים את המפתחGoogleService-Info.plist REVERSED_CLIENT_ID.מעתיקים את הערך של המפתח הזה ומדביקים אותו בתיבה URL Schemes בדף ההגדרות.
משאירים את שאר השדות ריקים.
לוחצים על הלחצן + ומוסיפים עוד סכימת כתובות URL. זהה למזהה ה-Bundle של האפליקציה.
לדוגמה, אם מזהה החבילה הוא
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"));
הטמעה של 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, מחלקת Listener צריכה להטמיע את הפונקציה הווירטואלית 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()); } };