יצירת קישורים דינמיים באמצעות C++‎

אתם יכולים ליצור סרטונים קצרים או ארוכים Dynamic Links באמצעות Firebase Dynamic Links API. ה-API מקבל כמה מבני פרמטרים אופציונליים כדי ליצור קישורים. אפשר גם ליצור קישורים קצרים מקישורים ארוכים שנוצרו בעבר. ‫Firebase Dynamic Links יוצר כתובת URL כמו זו:

https://example.page.link/WXYZ

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

לפני שמתחילים

כדי להשתמש ב-Firebase Dynamic Links, צריך:

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

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

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

שימו לב שהוספת Firebase לפרויקט C++‎ כוללת משימות במסוף Firebase ובפרויקט C++‎ הפתוח (לדוגמה, הורדה של קובצי תצורה של Firebase מהמסוף והעברה שלהם לפרויקט C++‎).

AndroidiOS
  1. במסוף Firebase, פותחים את הקטע Dynamic Links.
  2. אם עדיין לא אישרתם את התנאים וההגבלות והגדרתם קידומת URI ל-Dynamic Links, תתבקשו לעשות זאת.

    אם כבר יש לכם קידומת URI, כדאי לרשום אותה.Dynamic Links כשיוצרים Dynamic Links באופן פרוגרמטי, צריך לספק קידומת של מזהה URI של Dynamic Links.

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

    אם כבר יש לכם קידומת URI, כדאי לרשום אותה.Dynamic Links כשיוצרים Dynamic Links באופן פרוגרמטי, צריך לספק דומיין Dynamic Links.

  3. ספריית הלקוח של C++‎‏ Firebase Dynamic Links משתמשת בסכמות של כתובות URL בהתאמה אישית ב-iOS כדי לעבד קישורים. כדי לתמוך בקבלת Dynamic Links, צריך להוסיף לאפליקציה סכימות של כתובות URL מותאמות אישית:
    1. כדי לפתוח את הגדרות הפרויקט, לוחצים לחיצה כפולה על שם הפרויקט בתצוגת העץ הימנית. בוחרים את האפליקציה בקטע יעדים, ואז בוחרים בכרטיסייה מידע ומרחיבים את הקטע סוגי כתובות URL.
    2. לוחצים על הלחצן + ומוסיפים סכימת כתובות URL עבור מזהה הלקוח ההפוך. כדי למצוא את הערך הזה, פותחים את קובץ ההגדרות GoogleService-Info.plist ומחפשים את המפתח REVERSED_CLIENT_ID. מעתיקים את הערך של המפתח ומדביקים אותו בתיבה URL Schemes בדף ההגדרות. משאירים את שאר השדות ריקים.
    3. לוחצים על הלחצן + ומוסיפים עוד סכימת כתובות URL. המזהה הזה זהה למזהה החבילה של האפליקציה. לדוגמה, אם מזהה החבילה הוא com.example.ios, מקלידים את הערך הזה בתיבה URL Schemes (סכימות של כתובות URL). אפשר למצוא את מזהה החבילה של האפליקציה בכרטיסייה כללי בהגדרות הפרויקט (זהות > מזהה חבילה).

שימוש במסוף Firebase

אם רוצים ליצור Dynamic Link אחד, למטרות בדיקה או כדי שצוות השיווק יוכל ליצור בקלות קישור שאפשר להשתמש בו למשל בפוסט ברשתות החברתיות, הדרך הכי פשוטה היא להיכנס למסוף Firebase וליצור אותו באופן ידני באמצעות הטופס המפורט.

דומיינים מותאמים אישית

כדי לשלוט טוב יותר במיתוג של Dynamic Link, אפשר להשתמש בדומיין משלכם במקום בדומיין משנה של goo.gl או page.link. כדי להגדיר דומיין בהתאמה אישית לפרויקט, פועלים לפי ההוראות האלה.

שימוש ב-Firebase Dynamic Links API

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

לפני שיוצרים Dynamic Links, צריך ליצור אובייקט firebase::App ולהפעיל אותו.

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

#include "firebase/app.h"

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

AndroidiOS

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

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

יוצרים את 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 מקבלת פרמטר config נוסף 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());
  }
}