ایجاد پیوندهای پویا در برنامه Flutter

با «میانای برنامه‌سازی کاربردی سازنده پیوندهای پویای Firebase» می‌توانید «پیوندهای پویا» کوتاه یا بلند ایجاد کنید. این «میانای برنامه‌سازی کاربردی» یا «پیوند پویا» طولانی یا شیئی حاوی پارامترهای «پیوند پویا» را می‌پذیرد و نشانی‌های وبی مانند مثال‌های زیر را برمی‌گرداند:

https://example.com/link/WXYZ
https://example.page.link/WXYZ

قبل‌از اینکه بتوانید «پیوندهای پویا» را در برنامه Android خود ایجاد کنید، باید «کیت توسعه نرم‌افزار Firebase» را اضافه کنید. اگر برنامه شما برای دریافت «پیوندهای پویا» راه‌اندازی شده است، قبلاً این مراحل را تکمیل کرده‌اید و می‌توانید از این بخش رد شوید.

  1. اگر قبلاً این کار را نکرده‌اید، «کیت‌های توسعه نرم‌افزار Firebase برای Flutter» را نصب و مقداردهی اولیه کنید.

  2. از فهرست راهنمای ریشه پروژه Flutter خود، دستور زیر را برای نصب افزایه «پیوندهای پویا» اجرا کنید:

    flutter pub add firebase_dynamic_links
    
  3. اگر درحال ساختن برنامه Android هستید، صفحه تنظیمات پروژه کنسول Firebase را باز کنید و مطمئن شوید کلید امضای SHA-1 را مشخص کرده‌اید. اگر از «پیوندهای برنامه» استفاده می‌کنید، کلید SHA-256 خود را نیز مشخص کنید.

  4. در کنسول Firebase، بخش پیوندهای پویا را باز کنید.

    1. اگر قبلاً دامنه‌ای برای «پیوندهای پویا» خود راه‌اندازی نکرده‌اید، روی دکمه شروع به کار کلیک کنید و پیام‌واره‌ها را دنبال کنید.

      اگر ازقبل دامنه «پیوندهای پویا» دارید، آن را یادداشت کنید. وقتی «پیوندهای پویا» را به‌صورت برنامه‌ریزی‌شده ایجاد می‌کنید، باید دامنه «پیوندهای پویا» را ارائه دهید.

    2. توصیه‌شده: از منو «بیشتر» (⋮)، الگوهای نشانی وب مجاز در پیوندهای عمیق و پیوندهای برگشتی را مشخص کنید. با انجام این کار، از ایجاد «پیوندهای پویا» توسط طرف‌های غیرمجاز که از دامنه شما به سایت‌هایی که تحت کنترل شما نیستند هدایت می‌شوند جلوگیری می‌کنید.

      مجاز کردن الگوهای نشانی وب خاص را ببینید.

برای ایجاد «پیوند پویا»، 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,
);

می‌توانید از «میانای برنامه‌سازی کاربردی سازنده پیوند پویا» برای ایجاد «پیوندهای پویا» با هریک از پارامترهای پشتیبانی‌شده استفاده کنید. مرجع میانای برنامه‌سازی کاربردی را ببینید.

مثال زیر «پیوند پویایی» با چندین پارامتر رایج ایجاد می‌کند: تنظیم:

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

می‌توانید پارامترهای «پیوند پویا» را با روش‌های زیر تنظیم کنید:

پارامترهای DynamicLink
تنظیم پیوند پیوندی که برنامه‌تان باز خواهد کرد. نشانی وبی را مشخص کنید که برنامه‌تان بتواند آن را مدیریت کند، معمولاً محتوا یا داده‌برنامه که منطق ویژه برنامه را راه‌اندازی می‌کند (مثل اعطای اعتبار به کاربر با کد تخفیف یا نمایش صفحه خوشامدگویی). این پیوند باید نشانی وب با قالب‌بندی خوب باشد، به‌درستی کدبندی نشانی وب شده باشد، از HTTP یا HTTPS استفاده کند، و نمی‌تواند پیوند پویا دیگری باشد.
setDomainUriPrefix پیشوند نشانی وب «پیوند پویا» شما، که می‌توانید آن را در کنسول Firebase پیدا کنید. A دامنه «پیوند پویا» شبیه مثال‌های زیر است:
https://example.com/link
https://example.page.link
پارامترهای Android
setFallbackUrl پیوند برای باز کردن زمانی که برنامه نصب نشده است. این را مشخص کنید تا وقتی برنامه نصب نشده است، به‌جای نصب برنامه از «فروشگاه Play»، کار دیگری انجام شود، مثلاً نسخه وب تلفن همراه محتوا باز شود، یا صفحه تبلیغاتی برنامه‌تان نمایش داده شود.
تنظیم حداقل نسخه ‫versionCode حداقل نسخه برنامه شما که می‌تواند پیوند را باز کند. اگر برنامه نصب‌شده نسخه قدیمی‌تری باشد، کاربر به «فروشگاه Play» هدایت می‌شود تا برنامه را ارتقا دهد.
IosParameters
setAppStoreId «شناسه App Store» برنامه شما که برای ارسال کاربران به App Store درصورتی‌که برنامه نصب نشده باشد استفاده می‌شود
setFallbackUrl پیوند برای باز کردن زمانی که برنامه نصب نشده است. این کار را مشخص کنید تا وقتی برنامه نصب نشده است، به‌جای نصب برنامه از «فروشگاه برنامه‌ها»، کار دیگری انجام شود، مثلاً نسخه وب تلفن همراه محتوا باز شود، یا صفحه تبلیغاتی برنامه‌تان نمایش داده شود.
تنظیم طرح‌واره سفارشی طرح نشانی وب سفارشی برنامه شما، درصورتی‌که برای چیزی غیراز شناسه بسته برنامه شما تعریف شده باشد
setIpadFallbackUrl پیوند برای باز کردن در iPad وقتی برنامه نصب نشده است. این را مشخص کنید تا وقتی برنامه نصب نشده است، به‌جای نصب برنامه از «فروشگاه برنامه‌ها» کار دیگری انجام شود، مثلاً نسخه وب محتوا باز شود یا صفحه تبلیغاتی برنامه‌تان نمایش داده شود.
setIpadBundleId شناسه بسته برنامه iOS که در iPad برای باز کردن پیوند استفاده می‌شود. برنامه باید از صفحه «نمای کلی» کنسول Firebase به پروژه شما متصل شود.
تنظیم حداقل نسخه شماره نسخه حداقل نسخه برنامه‌تان که می‌تواند پیوند را باز کند. این پرچم هنگام باز شدن به برنامه شما منتقل می‌شود و برنامه شما باید تصمیم بگیرد که با آن چه کند.
پارامترهای NavigationInfo
setForcedRedirectEnabled اگر روی «۱» تنظیم شود، وقتی «پیوند پویا» باز می‌شود، از صفحه پیش‌نمایش برنامه رد می‌شود و به‌جای آن به برنامه یا فروشگاه هدایت می‌شود. صفحه پیش‌نمایش برنامه (به‌طور پیش‌فرض فعال است) می‌تواند کاربران را با اطمینان بیشتری به مقصد مناسب هدایت کند وقتی «پیوندهای پویا» را در برنامه‌ها باز می‌کنند؛ بااین‌حال، اگر انتظار دارید «پیوند پویا» فقط در برنامه‌هایی باز شود که می‌توانند «پیوندهای پویا» را بدون این صفحه به‌طور مطمئن باز کنند، می‌توانید آن را با این پارامتر غیرفعال کنید. این پارامتر فقط بر عملکرد «پیوند پویا» در iOS تأثیر می‌گذارد.
پارامترهای برچسب فراداده اجتماعی
setTitle عنوان مورد استفاده زمانی که «پیوند پویا» در پست اجتماعی هم‌رسانی می‌شود.
setDescription شرحی که هنگام هم‌رسانی «پیوند پویا» در پست اجتماعی استفاده می‌شود.
setImageUrl نشانی وب تصویری مرتبط با این پیوند. تصویر باید حداقل ۳۰۰x۲۰۰ پیکسل و کمتر از ۳۰۰ کیلوبایت باشد.
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 منتقل می‌شوند.