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

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

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

  3. إجراء مقترَح: حدِّد أنماط عناوين URL المسموح بها في الروابط لصفحات في التطبيق وروابط الاحتياط. سيؤدي ذلك إلى منع الجهات غير المصرَّح لها من إنشاء Dynamic Links تعيد التوجيه من نطاقك إلى مواقع إلكترونية لا تتحكّم فيها. راجِع مقالة السماح بأنماط عناوين URL محدّدة.
  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"

يختلف الجزء التالي حسب المنصة التي تستخدمها:

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

لإنشاء رابط قصير من روابط 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());
  }
}