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

يمكنك إنشاء Dynamic Links قصيرة أو طويلة باستخدام واجهة برمجة التطبيقات Firebase Dynamic Links. تأخذ واجهة برمجة التطبيقات عدة هياكل مَعلمات اختيارية لإنشاء الروابط. يمكن أيضًا إنشاء روابط قصيرة من رابط طويل تم إنشاؤه سابقًا. 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

  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، يُرجى إجراء ذلك عندما يُطلب منك ذلك.

    إذا كان لديك بادئة Dynamic Links URI، عليك تدوينها. عليك تقديم نطاق 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());
  }
}