إنشاء روابط ديناميكية باستخدام C++

يمكنك إنشاء Dynamic Links قصيرة أو طويلة باستخدام Firebase Dynamic Links 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++ الخاص بك).

Android

  1. في وحدة تحكُّم Firebase، افتح القسم Dynamic Links.
  2. إذا لم يسبق لك قبول بنود الخدمة وضبط بادئة URI لـ Dynamic Links، يُرجى إجراء ذلك عندما يُطلب منك ذلك.

    إذا كان لديك بادئة Dynamic Links URI، عليك تدوينها. يجب تقديم بادئة معرّف الموارد المنتظم (URI) Dynamic Links عند إنشاء Dynamic Links آليًا.

  3. إجراء مقترَح: حدِّد أنماط عناوين URL المسموح بها في روابطك لصفحات في التطبيق و الروابط الاحتياطية. وبهذا الإجراء، يمكنك منع الجهات غير المصرّح لها من إنشاء Dynamic Links تعيد التوجيه من نطاقك إلى مواقع إلكترونية لا تملك إدارتها. اطّلِع على أنماط عناوين URL في القائمة البيضاء.

iOS

  1. في وحدة تحكّم Firebase، افتح قسم Dynamic Links.
  2. إذا لم يسبق لك قبول بنود الخدمة وضبط بادئة URI لـ Dynamic Links، يُرجى إجراء ذلك عندما يُطلب منك ذلك.

    إذا كان لديك بادئة معرّف الموارد المنتظم (URI) Dynamic Links من قبل، لاحظ ذلك. عليك توفير نطاق Dynamic Links عند إنشاء Dynamic Links بشكل آلي.

  3. تستخدم مكتبة Firebase Dynamic Links C++ لبرامج العملاء مخطّطات عناوين URL مخصّصة على نظام التشغيل iOS لمعالجة الروابط. يجب إضافة مخطّطات عناوين URL مخصّصة إلى تطبيقك لتتمكّن منتلقّي Dynamic Links:
    1. لفتح إعدادات المشروع، انقر مرّتين على اسم المشروع في عرض الشجرة على يمين الصفحة. اختَر تطبيقك من قسم الاستهدافات، ثم انقر على علامة التبويب المعلومات ووسِّع قسم أنواع عناوين URL.
    2. انقر على الزر + وأضِف مخطّط عنوان URL لمعرّف العميل المقلوب. للعثور على هذه القيمة، افتح ملف الضبط GoogleService-Info.plist وابحث عن المفتاح REVERSED_CLIENT_ID. انسخ قيمة هذا المفتاح والصقها في مربّع أنظمة عناوين URL في صفحة الإعداد. اترك الحقول الأخرى فارغة.
    3. انقر على الزر + وأضِف مخطّط عنوان URL ثانٍ. وهذا المعرّف هو نفسه معرّف حِزمة تطبيقك. على سبيل المثال، إذا كان رقم تعريف الحزمة هو com.example.ios، فاكتب هذه القيمة في مربّع مخططات عناوين URL. يمكنك العثور على معرّف حزمة تطبيقك في علامة التبويب عام ضمن إعدادات المشروع (الهوية > معرّف الحزمة).

استخدام وحدة تحكّم Firebase

إذا كنت تريد إنشاء Dynamic Link واحدة، إما لأغراض الاختبار أو لكي يتمكّن فريق التسويق من إنشاء رابط يمكن استخدامه بسهولة في منشور على وسائل التواصل الاجتماعي، فإن أبسط طريقة هي الانتقال إلى وحدة تحكّم Firebase وإنشاء وحدة تحكّم يدويًا باتّباع النموذج المفصّل.

النطاقات الخاصة

يمكنك التحكّم بشكل أكبر في علامة Dynamic Link التجارية باستخدام نطاقك الخاص بدلاً من نطاق فرعي على goo.gl أو page.link. اتّبِع هذه التعليمات لإعداد نطاق مخصّص لمشروعك.

استخدام واجهة برمجة التطبيقات 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());
  }
}