ایجاد لینک های پویا با ++C

شما می‌توانید با استفاده از API Firebase Dynamic Links Dynamic Links کوتاه یا بلند ایجاد کنید. این API چندین ساختار پارامتر اختیاری برای ساخت لینک‌ها دریافت می‌کند. لینک‌های کوتاه همچنین می‌توانند از یک لینک بلند که قبلاً ایجاد شده است، ایجاد شوند. Firebase Dynamic Links URL ای مانند زیر تولید می‌کنند:

https://example.page.link/WXYZ

کیت توسعه نرم‌افزار C++ برای اندروید و iOS کار می‌کند، البته برای هر پلتفرم به تنظیمات اضافی نیاز است.

قبل از اینکه شروع کنی

قبل از اینکه بتوانید Firebase Dynamic Links استفاده کنید، باید:

  • پروژه ++C خود را ثبت کنید و آن را برای استفاده از Firebase پیکربندی کنید.

    اگر پروژه ++C شما از قبل از Firebase استفاده می‌کند، پس از قبل برای Firebase ثبت و پیکربندی شده است.

  • کیت توسعه نرم‌افزاری Firebase C++ را به پروژه C++ خود اضافه کنید.

توجه داشته باشید که اضافه کردن Firebase به پروژه C++ شما شامل وظایفی هم در کنسول Firebase و هم در پروژه C++ باز شما می‌شود (برای مثال، شما فایل‌های پیکربندی Firebase را از کنسول دانلود می‌کنید، سپس آنها را به پروژه C++ خود منتقل می‌کنید).

اندروید

  1. در کنسول Firebase ، بخش Dynamic Links را باز کنید.
  2. اگر قبلاً شرایط خدمات را نپذیرفته‌اید و پیشوند URI را برای Dynamic Links خود تنظیم نکرده‌اید، در صورت درخواست، این کار را انجام دهید.

    اگر از قبل پیشوند URL Dynamic Links را دارید، آن را یادداشت کنید. هنگام ایجاد Dynamic Links Dynamic Links ارائه دهید.

  3. توصیه می‌شود : الگوهای URL مجاز در لینک‌های عمیق و لینک‌های جایگزین خود را مشخص کنید. با انجام این کار، از ایجاد Dynamic Links توسط اشخاص غیرمجاز که از دامنه شما به سایت‌هایی که کنترلی بر آنها ندارید هدایت می‌شوند، جلوگیری می‌کنید. به بخش «اجازه دادن به الگوهای خاص URL» مراجعه کنید.

آی‌او‌اس

  1. در کنسول Firebase ، بخش Dynamic Links را باز کنید.
  2. اگر قبلاً شرایط خدمات را نپذیرفته‌اید و پیشوند URI را برای Dynamic Links خود تنظیم نکرده‌اید، در صورت درخواست، این کار را انجام دهید.

    اگر از قبل پیشوند URL مربوط به Dynamic Links را دارید، به آن توجه کنید. هنگام ایجاد Dynamic Links به صورت برنامه‌نویسی، باید یک دامنه Dynamic Links ارائه دهید.

  3. کتابخانه کلاینت Firebase Dynamic Links در زبان C++ از طرح‌های URL سفارشی در iOS برای پردازش لینک‌ها استفاده می‌کند. برای پشتیبانی از دریافت Dynamic Links باید طرح‌های URL سفارشی را به برنامه خود اضافه کنید:
    1. برای باز کردن پیکربندی پروژه، روی نام پروژه در نمای درختی سمت چپ دوبار کلیک کنید. برنامه خود را از بخش TARGETS انتخاب کنید، سپس تب Info را انتخاب کنید و بخش URL Types را باز کنید.
    2. روی دکمه + کلیک کنید و یک طرح URL برای شناسه کلاینت معکوس شده خود اضافه کنید. برای یافتن این مقدار، فایل پیکربندی GoogleService-Info.plist را باز کنید و به دنبال کلید REVERSED_CLIENT_ID بگردید. مقدار آن کلید را کپی کرده و در کادر طرح‌های URL در صفحه پیکربندی جایگذاری کنید. سایر فیلدها را خالی بگذارید.
    3. روی دکمه + کلیک کنید و یک طرح URL دوم اضافه کنید. این طرح URL همان شناسه بسته برنامه شماست. برای مثال، اگر شناسه بسته شما com.example.ios است، آن مقدار را در کادر طرح‌های URL تایپ کنید. می‌توانید شناسه بسته برنامه خود را در برگه عمومی پیکربندی پروژه ( هویت > شناسه بسته ) پیدا کنید.

استفاده از کنسول Firebase

اگر می‌خواهید یک Dynamic Link ایجاد کنید، چه برای اهداف آزمایشی و چه برای اینکه تیم بازاریابی شما به راحتی لینکی ایجاد کند که بتوان از آن در چیزی مانند یک پست در رسانه‌های اجتماعی استفاده کرد، ساده‌ترین راه این است که به کنسول Firebase مراجعه کنید و با دنبال کردن فرم گام به گام، یکی را به صورت دستی ایجاد کنید.

دامنه‌های سفارشی

شما می‌توانید با استفاده از دامنه خودتان به جای زیر دامنه goo.gl یا page.link ، کنترل بیشتری بر روی برندسازی Dynamic Link خود داشته باشید. برای تنظیم یک دامنه سفارشی برای پروژه خود، این دستورالعمل‌ها را دنبال کنید.

استفاده از API Firebase Dynamic Links

ایجاد و مقداردهی اولیه برنامه

قبل از اینکه بتوانید Dynamic Links ایجاد کنید، باید یک شیء firebase::App ایجاد و مقداردهی اولیه کنید.

فایل هدر مربوط به firebase::App اضافه کنید:

#include "firebase/app.h"

بخش بعدی بسته به پلتفرم شما متفاوت است:

اندروید

firebase::App ایجاد کنید و محیط JNI و یک ارجاع jobject را به عنوان آرگومان به Java Activity ارسال کنید:

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/ ایجاد می‌کند که با برنامه اندروید شما به نام 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);

ایجاد یک Dynamic Link کوتاه

برای ایجاد یک لینک پویای کوتاه، یک لینک بلند که قبلاً ایجاد شده است را به GetShortLink ارسال کنید یا DynamicLinkComponents را به همان روش بالا بسازید.

GetShortLink به صورت اختیاری یک پارامتر پیکربندی DynamicLinkOptions اضافی با PathLength می‌گیرد؛ این به شما امکان می‌دهد نحوه تولید لینک را کنترل کنید. تولید یک لینک کوتاه نیاز به یک درخواست شبکه به backend 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());
  }
}