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

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

https://example.page.link/WXYZ

C++ SDK هم برای Android و هم برای iOS کار می‌کند و برای هر platform.d به تنظیمات اضافی نیاز است

قبل از شروع

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

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

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

  • Firebase C++ SDK را به پروژه C++ خود اضافه کنید.

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

اندروید

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

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

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

iOS

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

    اگر قبلاً یک پیشوند URI 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 Schemes در صفحه پیکربندی قرار دهید. فیلدهای دیگر را خالی بگذارید.
    3. روی دکمه + کلیک کنید و یک طرح URL دوم اضافه کنید. این یکی مانند شناسه بسته برنامه شما است. برای مثال، اگر شناسه بسته شما com.example.ios است، آن مقدار را در کادر URL Schemes تایپ کنید. می‌توانید شناسه بسته برنامه خود را در برگه عمومی پیکربندی پروژه ( شناسه > شناسه بسته ) پیدا کنید.

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

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

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

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

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

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

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

شامل فایل هدر برای firebase::App :

#include "firebase/app.h"

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

اندروید

firebase::App را ایجاد کنید، محیط JNI و ارجاع jobject به فعالیت جاوا را به عنوان آرگومان بسازید:

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);

ایجاد یک 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());
  }
}