Catch up on highlights from Firebase at Google I/O 2023. Learn more

قم بإنشاء روابط ديناميكية في تطبيق Flutter

يمكنك إنشاء روابط ديناميكية قصيرة أو طويلة باستخدام Firebase Dynamic Links Builder API. تقبل واجهة برمجة التطبيقات هذه إما ارتباطًا ديناميكيًا طويلاً أو كائنًا يحتوي على معلمات الارتباط الديناميكي ، وتعرض عناوين URL مثل الأمثلة التالية:

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

قبل أن تتمكن من إنشاء روابط ديناميكية في تطبيق Android ، يجب عليك تضمين Firebase SDK. إذا تم إعداد التطبيق الخاص بك لتلقي الروابط الديناميكية ، فقد أكملت بالفعل هذه الخطوات ويمكنك تخطي هذا القسم.

  1. قم بتثبيت وتهيئة Firebase SDKs لـ Flutter إذا لم تكن قد قمت بذلك بالفعل.

  2. من الدليل الجذر لمشروع Flutter الخاص بك ، قم بتشغيل الأمر التالي لتثبيت المكون الإضافي Dynamic Links:

    flutter pub add firebase_dynamic_links
    
  3. إذا كنت تقوم بإنشاء تطبيق Android ، فافتح صفحة إعدادات المشروع في وحدة تحكم Firebase وتأكد من تحديد مفتاح توقيع SHA-1. إذا كنت تستخدم ارتباطات التطبيق ، فحدد أيضًا مفتاح SHA-256 الخاص بك.

  4. في وحدة تحكم Firebase ، افتح قسم الروابط الديناميكية .

    1. إذا لم تكن قد قمت بالفعل بإعداد مجال للارتباطات الديناميكية الخاصة بك ، فانقر فوق زر البدء واتبع التعليمات.

      إذا كان لديك بالفعل مجال روابط ديناميكية ، فقم بتدوين ذلك. تحتاج إلى توفير مجال ارتباطات ديناميكية عند إنشاء روابط ديناميكية برمجيًا.

    2. موصى به : من قائمة "المزيد" (⋮) ، حدد أنماط عنوان URL المسموح بها في روابط المواضع المعيّنة والروابط الاحتياطية. من خلال القيام بذلك ، فإنك تمنع الأطراف غير المصرح لها من إنشاء روابط ديناميكية تعيد التوجيه من نطاقك إلى مواقع لا تتحكم فيها.

      راجع السماح بأنماط عناوين URL محددة .

لإنشاء ارتباط ديناميكي ، قم بإنشاء كائن 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);

بشكل افتراضي ، يتم إنشاء روابط ديناميكية قصيرة مع لاحقات لا يتجاوز طولها بضعة أحرف. على الرغم من أن هذا يجعل الروابط أكثر إحكاما ، إلا أنه يقدم أيضًا إمكانية تخمين أحد الروابط القصيرة الصالحة. في كثير من الأحيان ، لا ضرر إذا قام شخص ما بذلك ، لأن الرابط يؤدي إلى معلومات عامة.

ومع ذلك ، إذا كانت روابطك المختصرة تؤدي إلى معلومات خاصة بالمستخدم ، فيجب عليك إنشاء روابط أطول مع لواحق من 17 حرفًا تجعل من غير المحتمل أن يتمكن أي شخص من تخمين ارتباط ديناميكي صالح. للقيام بذلك ، قم بتمرير ShortDynamicLinkType.unguessable إلى طريقة buildShortLink() :

final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
    dynamicLinkParams,
    shortLinkType: ShortDynamicLinkType.unguessable,
);

يمكنك استخدام Dynamic Link Builder API لإنشاء روابط ديناميكية مع أي من المعلمات المدعومة. انظر مرجع 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);

يمكنك تعيين معلمات الارتباط الديناميكي بالطرق التالية:

معلمات DynamicLink
setLink الرابط الذي سيفتحه تطبيقك. حدد عنوان URL يمكن لتطبيقك التعامل معه ، عادةً ما يكون محتوى التطبيق أو حمولته ، والذي يبدأ منطقًا خاصًا بالتطبيق (مثل منح المستخدم قسيمة أو عرض شاشة ترحيب). يجب أن يكون هذا الارتباط عبارة عن عنوان URL جيد التنسيق ، وأن يكون مشفرًا بعنوان URL بشكل صحيح ، ويستخدم إما HTTP أو HTTPS ، ولا يمكن أن يكون رابطًا ديناميكيًا آخر.
setDomainUriPrefix بادئة عنوان URL للرابط الديناميكي ، والتي يمكنك العثور عليها في وحدة تحكم Firebase. يشبه مجال الارتباط الديناميكي الأمثلة التالية:
https://example.com/link
https://example.page.link
Android المعلمات
setFallbackUrl الرابط الذي سيتم فتحه عند عدم تثبيت التطبيق. حدد هذا للقيام بشيء آخر غير تثبيت التطبيق الخاص بك من متجر Play عندما لا يتم تثبيت التطبيق ، مثل فتح إصدار الويب للجوال من المحتوى ، أو عرض صفحة ترويجية لتطبيقك.
setMinimumVersion رمز الإصدار لأدنى إصدار من تطبيقك يمكنه فتح الرابط. إذا كان التطبيق المثبت إصدارًا أقدم ، فسيتم نقل المستخدم إلى متجر Play لترقية التطبيق.
IosParameters
setAppStoreId معرّف App Store لتطبيقك ، يُستخدم لإرسال المستخدمين إلى App Store عندما لا يكون التطبيق مثبتًا
setFallbackUrl الرابط الذي سيتم فتحه عند عدم تثبيت التطبيق. حدد هذا للقيام بشيء آخر غير تثبيت تطبيقك من App Store عندما لا يكون التطبيق مثبتًا ، مثل فتح إصدار الويب للجوال من المحتوى ، أو عرض صفحة ترويجية لتطبيقك.
setCustomScheme مخطط عنوان URL المخصص لتطبيقك ، إذا تم تعريفه على أنه شيء آخر غير معرّف حزمة تطبيقك
setIpadFallbackUrl الرابط الذي سيتم فتحه على أجهزة iPad في حالة عدم تثبيت التطبيق. حدد هذا للقيام بشيء آخر غير تثبيت تطبيقك من App Store عندما لا يكون التطبيق مثبتًا ، مثل فتح إصدار الويب للمحتوى ، أو عرض صفحة ترويجية لتطبيقك.
setIpadBundleId معرّف حزمة تطبيق iOS المراد استخدامه على أجهزة iPad لفتح الرابط. يجب أن يكون التطبيق متصلاً بمشروعك من صفحة "نظرة عامة" بوحدة تحكم Firebase.
setMinimumVersion رقم إصدار أقل إصدار لتطبيقك يمكنه فتح الرابط. يتم تمرير هذه العلامة إلى تطبيقك عند فتحه ، ويجب أن يقرر التطبيق ما يجب فعله به.
NavigationInfoParameters
setForcedRedirectEnabled إذا تم التعيين على "1" ، فتخط صفحة معاينة التطبيق عند فتح الرابط الديناميكي ، وبدلاً من ذلك أعد التوجيه إلى التطبيق أو المتجر. يمكن لصفحة معاينة التطبيق (التي يتم تمكينها افتراضيًا) إرسال المستخدمين بشكل أكثر موثوقية إلى الوجهة الأكثر ملاءمة عند فتح الروابط الديناميكية في التطبيقات ؛ ومع ذلك ، إذا كنت تتوقع أن يتم فتح الرابط الديناميكي فقط في التطبيقات التي يمكنها فتح الروابط الديناميكية بشكل موثوق بدون هذه الصفحة ، فيمكنك تعطيله باستخدام هذه المعلمة. ستؤثر هذه المعلمة على سلوك الرابط الديناميكي فقط على نظام iOS.
SocialMetaTagParameters
تعيين العنوان العنوان المراد استخدامه عند مشاركة الرابط الديناميكي في منشور اجتماعي.
وصف المجموعة الوصف المطلوب استخدامه عند مشاركة الرابط الديناميكي في منشور اجتماعي.
setImageUrl عنوان URL لصورة مرتبطة بهذا الارتباط. يجب أن تكون الصورة 300 × 200 بكسل على الأقل ، وأقل من 300 كيلوبايت.
GoogleAnalyticsParameters
setSource
تعيينمتوسط
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.