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

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

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

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

  1. تثبيت حِزم تطوير البرامج (SDK) لمنصة Firebase وإعدادها من أجل Flutter في حال: لم تفعل ذلك بالفعل.

  2. من الدليل الرئيسي لمشروع Flutter، عليك تنفيذ ما يلي: لتثبيت المكوّن الإضافي للروابط الديناميكية:

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

يمكنك استخدام واجهة برمجة تطبيقات أداة إنشاء الروابط الديناميكية لإنشاء روابط ديناميكية باستخدام أي من والمعلمات المدعومة. يُرجى الاطّلاع على مرجع واجهة برمجة التطبيقات.

ينشئ المثال التالي رابطًا ديناميكيًا به عدة معلمات شائعة. مجموعة:

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
تعيين الرابط سيفتح التطبيق الرابط. يجب تحديد عنوان URL يمكن لتطبيقك التعامل معه. محتوى التطبيق أو حمولة البيانات، وهو ما يؤدي إلى بدء تشغيل (مثل إضافة قسيمة إلى المستخدم أو عرض شاشة الترحيب). يجب أن يكون هذا الرابط عنوان URL بتنسيق صحيح، وأن يكون صحيحًا بترميز عنوان URL، واستخدام إما HTTP أو HTTPS، ولا يمكن أن يكون عنوانًا ديناميكيًا آخر رابط.
بادئة setDomainUriPrefix بادئة عنوان URL للرابط الديناميكي، والتي يمكنك العثور عليها في وحدة تحكُّم Firebase. حاسمة يظهر نطاق الرابط الديناميكي على النحو التالي:
https://example.com/link
https://example.page.link
مَعلمات Android
setFallbackUrl الرابط الذي يتم فتحه عندما لا يكون التطبيق مثبَّتًا. تحديد هذا الإجراء شيئًا بخلاف تثبيت تطبيقك من متجر Play عند غير مثبّت، مثل فتح إصدار الويب للأجهزة الجوّالة من المحتوى عرض صفحة ترويجية لتطبيقك.
ضبط الحد الأدنى للإصدار رمز الإصدار لأدنى إصدار من تطبيقك يمكنه فتح . إذا كان الإصدار المثبَّت من التطبيق قديمًا، سيتم نقل المستخدم إلى متجر Play لترقية التطبيق.
معلَمات Ios
setAppStoreId رقم تعريف تطبيقك على App Store، والذي يُستخدَم لتوجيه المستخدمين إلى App Store عند التَّطْبِيقْ دَهْ مِشْ مِتْثَبِّتْ
setFallbackUrl الرابط الذي يتم فتحه عندما لا يكون التطبيق مثبَّتًا. تحديد هذا الإجراء شيئًا بخلاف تثبيت تطبيقك من App Store عند غير مثبّت، مثل فتح إصدار الويب للأجهزة الجوّالة من المحتوى عرض صفحة ترويجية لتطبيقك.
تعيين CustomScheme مخطَّط عنوان URL المخصّص لتطبيقك، إذا تم تحديده على أنّه شيء مختلف معرِّف حِزمة تطبيقك
setIpadFallbackUrl الرابط الذي يتم فتحه على أجهزة iPad عندما يكون التطبيق غير مثبَّت. التحديد إلى اتخاذ إجراء بخلاف تثبيت تطبيقك من App Store عند إذا كان التطبيق غير مثبت، مثل فتح إصدار الويب من المحتوى عرض صفحة ترويجية لتطبيقك.
setIpadBundleId رقم تعريف الحزمة الخاص بتطبيق iOS والمطلوب استخدامه على أجهزة iPad لفتح الرابط التطبيق بمشروعك من صفحة "نظرة عامة" في "وحدة تحكُّم Firebase".
ضبط الحد الأدنى للإصدار رقم الإصدار الأدنى لإصدار تطبيقك الذي يمكنه فتح . يتم إرسال هذه العلامة إلى تطبيقك عند فتحه وعلى التطبيق. يجب أن يقرر ما يجب فعله بها.
مَعلَمات معلومات التنقّل
setForcedRedirectEnabled في حال الضبط على "1"، يمكنك تخطّي صفحة معاينة التطبيق عند ضبط الرابط الديناميكي على فتح القائمة، وبدلاً من ذلك إعادة التوجيه إلى التطبيق أو المتجر. صفحة معاينة التطبيق (مُفعّل تلقائيًا) إلى توجيه المستخدمين بشكل أكثر موثوقية إلى الوجهة المناسبة عند فتح الروابط الديناميكية في التطبيقات وَلَكِنْ إذا كنت تتوقع أن يتم فتح الرابط الديناميكي فقط في التطبيقات التي يمكن فتحها الروابط الديناميكية بشكل موثوق بدون هذه الصفحة، يمكنك إيقافها من خلال . ستؤثّر هذه المَعلمة في سلوك الرابط الديناميكي. على iOS فقط.
مَعلمات SocialMetaTag
تعيين العنوان العنوان المستخدم عند نشر الرابط الديناميكي في مشاركة اجتماعية.
setDescription الوصف المستخدم عند نشر الرابط الديناميكي في مشاركة اجتماعية.
setImageUrl تمثّل هذه السمة عنوان URL لصورة ذات صلة بهذا الرابط. يجب ألا يقل حجم الصورة عن 300x200 بكسل وأقل من 300 كيلوبايت
مَعلمات Google Analytics
setSource
setMedium
setCampaign
setTerm
setContent
مَعلمات "إحصاءات Google Play" هذه المعلمات (`utm_source`, `utm_medium`, "utm_campaign" و"utm_term" و"utm_content") يتم تمريرها إلى "متجر Play" ويتم إلحاقها بحمولة الرابط.
مَعلمات ItunesConnectAnalytics
setProviderToken
setAffiliateToken
setCampaignToken
معلَمات إحصاءات iTunes Connect هذه المعلمات (`pt`، `at`, `ct`) إلى App Store.