میتوانید با Firebase Dynamic Links Builder API، «پیوندهای پویای» کوتاه یا بلند ایجاد کنید. این API یا یک Dynamic Link طولانی را میپذیرد یا شیئی حاوی پارامترهای Dynamic Link، و نشانیهای وبی مانند نمونههای زیر را برمیگرداند:
https://example.com/link/WXYZ
https://example.page.link/WXYZ
راهاندازی Firebase و کیت توسعه نرمافزار پیوندهای پویا
قبلاز اینکه بتوانید «پیوندهای پویا» را در برنامه Android خود ایجاد کنید، باید کیت توسعه نرمافزار Firebase را اضافه کنید. اگر برنامهتان برای دریافت «پیوندهای پویا» راهاندازی شده است، قبلاً این مراحل را تکمیل کردهاید و میتوانید از این بخش رد شوید.
اگر قبلاً این کار را نکردهاید، کیتهای توسعه نرمافزار Firebase برای Flutter را نصب و مقداردهی اولیه کنید.
از دایرکتوری ریشه پروژه Flutter، فرمان زیر را اجرا کنید تا افزونه «پیوندهای پویا» نصب شود:
flutter pub add firebase_dynamic_linksاگر درحال ساختن برنامه Android هستید، صفحه تنظیمات پروژه کنسول Firebase را باز کنید و مطمئن شوید کلید امضای SHA-1 خود را مشخص کردهاید. اگر از «پیوندهای برنامه» استفاده میکنید، کلید SHA-256 خود را نیز مشخص کنید.
در کنسول Firebase، بخش پیوندهای پویا را باز کنید.
اگر هنوز دامنهای برای «پیوندهای پویا» خود راهاندازی نکردهاید، روی دکمه شروع به کار کلیک کنید و پیاموارهها را دنبال کنید.
اگر ازقبل دامنه Dynamic Links دارید، آن را یادداشت کنید. وقتی «پیوندهای پویا» را بهصورت برنامهنویسیشده ایجاد میکنید، باید دامنه «پیوندهای پویا» را ارائه دهید.

توصیهشده: از منو «بیشتر» (⋮)، الگوهای نشانی وب مجاز در پیوندهای عمیق و پیوندهای بازگشتی را مشخص کنید. با انجام این کار، از ایجاد «پیوندهای پویا» توسط طرفهای غیرمجاز که از دامنه شما به سایتهایی که تحت کنترل شما نیستند تغییرمسیر میدهند جلوگیری میکنید.
مجاز کردن الگوهای نشانی وب خاص را ببینید.
ایجاد پیوند پویا از پارامترها
برای ایجاد Dynamic Link، شیء DynamicLinkParameters جدیدی ایجاد کنید و آن را به
buildLink() یا buildShortLink() ارسال کنید.
نمونه حداقلی زیر یک «پیوند پویای» طولانی به
https://www.example.com/ ایجاد میکند که با com.example.app.android در Android
و برنامه com.example.app.ios در iOS باز میشود:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildLink(dynamicLinkParams);
برای ایجاد «پیوند پویای» کوتاه، شیء DynamicLinkParameters را به
buildShortLink() منتقل کنید. ساختن پیوند کوتاه به تماس شبکه نیاز دارد.
برای مثال:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
بهطور پیشفرض، «پیوندهای پویای» کوتاه با پسوندهایی تولید میشوند که فقط چند نویسه طول دارند. اگرچه این کار باعث میشود پیوندها فشردهتر شوند، اما این احتمال را نیز بهوجود میآورد که شخصی بتواند پیوند کوتاه معتبری را حدس بزند. اغلب، اگر کسی این کار را انجام دهد، ضرری ندارد، زیرا پیوند به اطلاعات عمومی منتهی میشود.
بااینحال، اگر پیوندهای کوتاه شما به اطلاعات مختص کاربر منتهی میشود، باید
پیوندهای طولانیتری با پسوندهای ۱۷ نویسهای ایجاد کنید تا احتمال اینکه
کسی بتواند «پیوند پویای» معتبری را حدس بزند بسیار کم شود. برای انجام این کار، ShortDynamicLinkType.unguessable را به روش buildShortLink() ارسال کنید:
final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
dynamicLinkParams,
shortLinkType: ShortDynamicLinkType.unguessable,
);
پارامترهای پیوند پویا
میتوانید از Dynamic Link Builder API برای ایجاد «پیوندهای پویا» با هریک از پارامترهای پشتیبانیشده استفاده کنید. مرجع میانای برنامهسازی کاربردی را ببینید.
مثال زیر یک «پیوند پویا» با چندین پارامتر رایج ایجاد میکند مجموعه:
final dynamicLinkParams = DynamicLinkParameters(
link: Uri.parse("https://www.example.com/"),
uriPrefix: "https://example.page.link",
androidParameters: const AndroidParameters(
packageName: "com.example.app.android",
minimumVersion: 30,
),
iosParameters: const IOSParameters(
bundleId: "com.example.app.ios",
appStoreId: "123456789",
minimumVersion: "1.0.1",
),
googleAnalyticsParameters: const GoogleAnalyticsParameters(
source: "twitter",
medium: "social",
campaign: "example-promo",
),
socialMetaTagParameters: SocialMetaTagParameters(
title: "Example of a Dynamic Link",
imageUrl: Uri.parse("https://example.com/image.png"),
),
);
final dynamicLink =
await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);
میتوانید پارامترهای Dynamic Link را با روشهای زیر تنظیم کنید:
| پارامترهای DynamicLink | |
|---|---|
| setLink | پیوندی که برنامهتان باز خواهد کرد. نشانی وبی را مشخص کنید که برنامهتان بتواند آن را مدیریت کند، معمولاً محتوا یا بار داده برنامه، که منطق مختص برنامه را آغاز میکند (مثل اعتبار دادن به کاربر با کوپن یا نمایش صفحه خوشامدگویی). این پیوند باید نشانی وب با قالببندی مناسب باشد، بهدرستی کدگذاری نشانی وب شده باشد، از HTTP یا HTTPS استفاده کند، و نمیتواند «پیوند پویای» دیگری باشد. |
| setDomainUriPrefix | پیشوند نشانی وب «پیوند پویای» شما که میتوانید آن را در کنسول Firebase پیدا کنید. دامنه
Dynamic Link شبیه نمونههای زیر است:
https://example.com/link https://example.page.link |
| AndroidParameters | |
|---|---|
| setFallbackUrl | پیوندی که وقتی برنامه نصب نشده است باز میشود. این را برای انجام کاری غیراز نصب برنامهتان از «فروشگاه Play» در زمانی که برنامه نصب نشده است مشخص کنید، مثلاً باز کردن نسخه وب تلفن همراه محتوا، یا نمایش صفحه تبلیغاتی برای برنامهتان. |
| setMinimumVersion | کد نسخه حداقل نسخه برنامهتان که میتواند پیوند را باز کند. اگر برنامه نصبشده نسخه قدیمیتری باشد، کاربر به «فروشگاه Play» هدایت میشود تا برنامه را ارتقا دهد. |
| IosParameters | |
|---|---|
| setAppStoreId | شناسه App Store برنامهتان، که برای ارسال کاربران به App Store در زمانی که برنامه نصب نشده است استفاده میشود |
| setFallbackUrl | پیوندی که وقتی برنامه نصب نشده است باز میشود. این را برای انجام کاری غیراز نصب برنامه از App Store در زمانی که برنامه نصب نشده است مشخص کنید، مثلاً باز کردن نسخه وب تلفن همراه محتوا، یا نمایش صفحه تبلیغاتی برای برنامه شما. |
| تنظیم طرحواره سفارشی | طرحواره نشانی وب سفارشی برنامهتان، اگر چیزی غیراز شناسه بسته ترکیبی برنامهتان تعریف شده باشد |
| setIpadFallbackUrl | پیوندی که وقتی برنامه نصب نشده است در iPad باز میشود. این را برای انجام کاری غیراز نصب برنامهتان از App Store در زمانی که برنامه نصب نشده است مشخص کنید، مثلاً باز کردن نسخه وب محتوا یا نمایش صفحه تبلیغاتی برای برنامهتان. |
| setIpadBundleId | شناسه بسته ترکیبی برنامه iOS برای استفاده در iPad جهت باز کردن پیوند. برنامه باید از صفحه «نمای کلی» کنسول Firebase به پروژه شما متصل شود. |
| setMinimumVersion | شماره نسخه حداقل نسخهای از برنامهتان که میتواند پیوند را باز کند. این پرچم هنگام باز شدن برنامه به آن منتقل میشود و برنامه شما باید تصمیم بگیرد که با آن چه کند. |
| NavigationInfoParameters | |
|---|---|
| setForcedRedirectEnabled | اگر روی «۱» تنظیم شده باشد، وقتی «پیوند پویا» باز میشود، از صفحه پیشنمایش برنامه رد میشود و درعوض به برنامه یا فروشگاه هدایت میکند. صفحه پیشنمایش برنامه (بهطور پیشفرض فعال است) میتواند کاربران را بهطور مطمئنتری به مناسبترین مقصد هدایت کند وقتی «پیوندهای پویا» را در برنامهها باز میکنند؛ بااینحال، اگر انتظار دارید «پیوند پویا» فقط در برنامههایی باز شود که میتوانند «پیوندهای پویا» را بهطور مطمئن بدون این صفحه باز کنند، میتوانید آن را با این پارامتر غیرفعال کنید. این پارامتر بر رفتار «پیوند پویا» فقط در iOS تأثیر میگذارد. |
| SocialMetaTagParameters | |
|---|---|
| setTitle | عنوانی که هنگام همرسانی «پیوند پویا» در پست اجتماعی استفاده میشود. |
| setDescription | شرحی که هنگام همرسانی «پیوند پویا» در پست اجتماعی استفاده میشود. |
| setImageUrl | نشانی وب تصویر مربوط به این پیوند. تصویر باید حداقل ۳۰۰×۲۰۰ پیکسل و کمتر از ۳۰۰ کیلوبایت باشد. |
| GoogleAnalyticsParameters | |
|---|---|
| setSource setMedium setCampaign setTerm setContent |
پارامترهای تجزیهوتحلیل Google Play. این پارامترها (`utm_source`، `utm_medium`، `utm_campaign`، `utm_term`، `utm_content`) به «فروشگاه Play» ارسال میشوند و به بار داده پیوند نیز اضافه میشوند. |
| ItunesConnectAnalyticsParameters | |
|---|---|
| setProviderToken setAffiliateToken setCampaignToken |
پارامترهای تجزیهوتحلیل iTunes Connect. این پارامترها (`pt`، `at`، `ct`) به App Store ارسال میشوند. |