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

با Firebase Dynamic Links API می توانید پیوندهای پویا کوتاه یا طولانی ایجاد کنید. 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 برای پیوندهای پویا خود تنظیم نکرده اید، وقتی از شما خواسته شد این کار را انجام دهید.

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

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

iOS

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

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

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

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

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

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

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

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

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

قبل از اینکه بتوانید پیوندهای پویا ایجاد کنید، باید یک شی 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 را مقداردهی اولیه کنید :

::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());
  }
}