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