אפשר ליצור Dynamic Links קצרים או ארוכים באמצעות Firebase Dynamic Links API. ה-API מקבל כמה מבני פרמטרים אופציונליים כדי ליצור קישורים. אפשר גם ליצור קישורים קצרים מקישור ארוך שנוצר בעבר. Firebase Dynamic Links יוצר כתובת URL כמו זו:
https://example.page.link/WXYZ
ערכת ה-SDK ל-C++ פועלת גם ב-Android וגם ב-iOS, אבל צריך לבצע הגדרות נוספות בכל פלטפורמה.
לפני שמתחילים
לפני שתוכלו להשתמש ב-Firebase Dynamic Links, אתם צריכים:
רושמים את פרויקט C++ ומגדירים אותו לשימוש ב-Firebase.
אם פרויקט ה-C++ שלכם כבר משתמש ב-Firebase, הוא כבר רשום ומוגדר ל-Firebase.
מוסיפים את Firebase C++ SDK לפרויקט C++.
שימו לב: כדי להוסיף את Firebase לפרויקט ב-C++, צריך לבצע משימות גם במסוף Firebase וגם בפרויקט הפתוח ב-C++ (לדוגמה, מורידים את קובצי התצורה של Firebase מהמסוף ומעבירים אותם לפרויקט ב-C++).
Android
- במסוף Firebase, פותחים את הקטע Dynamic Links.
אם עדיין לא אישרתם את התנאים וההגבלות ולא הגדרתם תחילית URI ל-Dynamic Links, תתבקשו לעשות זאת.
אם כבר יש לכם תחילית URI של Dynamic Links, שימו לב אליה. כשיוצרים Dynamic Links באופן פרוגרמטי, צריך לספק קידומת URI של Dynamic Links.

- מומלץ: לציין את תבניות ה-URL שמותר להשתמש בהן בקישורי העומק ובקישורי ה-fallback. כך אתם מונעים מגורמים לא מורשים ליצור Dynamic Links שמפנים מהדומיין שלכם לאתרים שאין לכם שליטה עליהם. אישור של תבניות URL ספציפיות
iOS
- במסוף Firebase, פותחים את הקטע Dynamic Links.
אם עדיין לא אישרתם את התנאים וההגבלות ולא הגדרתם תחילית URI ל-Dynamic Links, תתבקשו לעשות זאת.
אם כבר יש לכם תחילית URI של Dynamic Links, שימו לב אליה. כשיוצרים Dynamic Links באופן פרוגרמטי, צריך לציין דומיין של Dynamic Links.

- ספריית הלקוח של 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).
שימוש במסוף Firebase
אם אתם רוצים ליצור Dynamic Link יחיד, למטרות בדיקה או כדי שצוות השיווק שלכם יוכל ליצור בקלות קישור שאפשר להשתמש בו בפוסט ברשתות החברתיות, הדרך הפשוטה ביותר היא להיכנס למסוף Firebase וליצור קישור באופן ידני לפי הטופס המפורט.
דומיינים מותאמים אישית
כדי לשלוט טוב יותר במיתוג של Dynamic Link, אתם יכולים להשתמש בדומיין משלכם במקום בתת-דומיין של goo.gl או page.link. כדי להגדיר דומיין בהתאמה אישית לפרויקט, פועלים לפי ההוראות האלה.
שימוש ב-API של Firebase Dynamic Links
יצירה והפעלה של האפליקציה
לפני שיוצרים את 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, צריך להפעיל את הספרייה Dynamic Links:
::firebase::dynamic_links::Initialize(app, null);
יצירת Dynamic Link ארוך מפרמטרים
כדי ליצור קישור דינמי, יוצרים אובייקט DynamicLinkComponents, מגדירים את כל החברים האופציונליים להגדרה נוספת ומעבירים אותו אל dynamic_links::GetShortLink או אל dynamic_links::GetLongLink.
הדוגמה המינימלית הבאה יוצרת קישור דינמי ארוך אל https://www.example.com/ שנפתח באמצעות אפליקציית Android com.example.android.package_name ואפליקציה ל-iOS com.example.ios:
firebase::dynamic_links::IOSParameters ios_parameters("com.example.ios"); firebase::dynamic_links::AndroidParameters android_parameters( "com.example.android.package_name"); firebase::dynamic_links::DynamicLinkComponents components( "https://www.example.com/", "example.page.link"); components.android_parameters = &android_parameters; components.ios_parameters = &ios_parameters; firebase::dynamic_links::GeneratedDynamicLink long_link = firebase::dynamic_links::GetLongLink(components);
יצירת סרטון Shorts Dynamic Link
כדי ליצור קישור דינמי קצר, מעבירים קישור ארוך שנוצר קודם ל-GetShortLink או יוצרים DynamicLinkComponents באותו אופן כמו למעלה.
אפשר להוסיף ל-GetShortLink פרמטר הגדרה נוסף של DynamicLinkOptions עם PathLength, שמאפשר לשלוט באופן שבו הקישור ייווצר. כדי ליצור קישור קצר, צריך לשלוח בקשה לאחזור מהרשת לקצה העורפי של Firebase, ולכן GetShortLink היא אסינכרונית ומחזירה Future<GeneratedLink>.
לדוגמה:
firebase::dynamic_links::DynamicLinkOptions short_link_options; short_link_options.path_length = firebase::dynamic_links::kPathLengthShort; firebase::Future<firebase::dynamic_links::GeneratedDynamicLink> result = firebase::dynamic_links::GetShortLink(components, short_link_options);
אם בתוכנית שלכם יש לולאת עדכון שפועלת באופן קבוע (למשל 30 או 60 פעמים בשנייה), אתם יכולים לבדוק את התוצאות פעם אחת בכל עדכון:
if (result.status() == firebase::kFutureStatusComplete) { if (result.error() == firebase::dynamic_links::kErrorCodeSuccess) { firebase::dynamic_links::GeneratedDynamicLink link = *result.result(); printf("Create short link succeeded: %s\n", link.url.c_str()); } else { printf("Created short link failed with error '%s'\n", result.error_message()); } }