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

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

ذكري المظهر

  1. في وحدة تحكم Firebase، افتح قسم الروابط الديناميكية .
  2. إذا لم تكن قد قبلت بالفعل شروط الخدمة وقمت بتعيين بادئة URI للارتباطات الديناميكية الخاصة بك، فقم بذلك عندما يُطلب منك ذلك.

    إذا كان لديك بالفعل بادئة URI للارتباطات الديناميكية، فلاحظها. يتعين عليك توفير بادئة URI للارتباطات الديناميكية عند إنشاء الارتباطات الديناميكية برمجيًا.

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

دائرة الرقابة الداخلية

  1. في وحدة تحكم Firebase، افتح قسم الروابط الديناميكية .
  2. إذا لم تكن قد قبلت بالفعل شروط الخدمة وقمت بتعيين بادئة URI للارتباطات الديناميكية الخاصة بك، فقم بذلك عندما يُطلب منك ذلك.

    إذا كان لديك بالفعل بادئة URI للارتباطات الديناميكية، فلاحظها. يتعين عليك توفير مجال الارتباطات الديناميكية عند إنشاء الارتباطات الديناميكية برمجيًا.

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

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

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

المجالات المخصصة

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

استخدام واجهة برمجة تطبيقات Firebase Dynamic Links

إنشاء وتهيئة التطبيق

قبل أن تتمكن من إنشاء روابط ديناميكية، ستحتاج إلى إنشاء وتهيئة كائن firebase::App .

قم بتضمين ملف الرأس لـ firebase::App :

#include "firebase/app.h"

يختلف الجزء التالي حسب النظام الأساسي الخاص بك:

ذكري المظهر

قم بإنشاء 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"));

تهيئة مكتبة الارتباطات الديناميكية

قبل إنشاء رابط ديناميكي، يجب عليك أولاً تهيئة مكتبة الارتباطات الديناميكية:

::firebase::dynamic_links::Initialize(app, null);

إنشاء رابط ديناميكي طويل من المعلمات

لإنشاء ارتباط ديناميكي، قم بإنشاء كائن 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);

إنشاء رابط ديناميكي قصير

لإنشاء رابط ديناميكي قصير، قم بتمرير رابط طويل تم إنشاؤه مسبقًا إلى 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());
  }
}