כדי לקבל את Firebase Dynamic Links שיצרתם, עליכם לכלול את Dynamic Links SDK באפליקציה וליצור אובייקט firebase::dynamic_links::Listener
שמטמיע את הפונקציה הווירטואלית OnDynamicLinkReceived
.
ה-SDK של C++ פועל גם ב-Android וגם ב-iOS, אבל צריך לבצע הגדרות נוספות לכל פלטפורמה.
לפני שמתחילים
כדי להשתמש ב-Firebase Dynamic Links, צריך:
רושמים את פרויקט ה-C++ ומגדירים אותו לשימוש ב-Firebase.
אם כבר משתמשים ב-Firebase בפרויקט C++, הוא כבר רשום ב-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 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"));
הטמעת מאזין לבדיקה של 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()); } };