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

يُرجى العِلم أنّ إضافة Firebase إلى مشروع C++ يتضمّن مهامًا في كل من وحدة تحكّم Firebase ومشروع C++ المفتوح (على سبيل المثال، يمكنك تنزيل ملفات إعداد Firebase من وحدة التحكّم، ثم نقلها إلى مشروع C++).

Android

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

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

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

iOS

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

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

  3. تستخدِم مكتبة برامج C++ للعملاء مخطّطات عناوين URL مخصّصة على أجهزة iOS لمعالجة الروابط. يجب إضافة مخطّطات عناوين URL مخصّصة إلى تطبيقك لتتمكّن من تلقّي Dynamic Links:
      Firebase 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());
  }
}