يمكنك إنشاء روابط ديناميكية قصيرة أو طويلة باستخدام واجهة برمجة التطبيقات Firebase Dynamic Links Builder API. تقبل واجهة برمجة التطبيقات هذه إما رابطًا ديناميكيًا طويلاً أو كائنًا يحتوي على مَعلمات الرابط الديناميكي، وتعرض عناوين URL مثل الأمثلة التالية:
https://example.com/link/WXYZ
https://example.page.link/WXYZ
إعداد Firebase وحزمة تطوير البرامج (SDK) للروابط الديناميكية
قبل إنشاء روابط ديناميكية في تطبيق Android، يجب تضمين حزمة تطوير البرامج (SDK) لمنصة Firebase. إذا تم إعداد تطبيقك لتلقّي الروابط الديناميكية، تكون قد أكملت هذه الخطوات ويمكنك تخطّي هذا القسم.
ثبِّت حِزم Firebase SDK لـ Flutter وابدأها إذا لم يسبق لك إجراء ذلك.
من الدليل الجذري لمشروع Flutter، نفِّذ الأمر التالي لتثبيت المكوّن الإضافي "الروابط الديناميكية":
flutter pub add firebase_dynamic_linksإذا كنت بصدد إنشاء تطبيق Android، افتح صفحة إعدادات المشروع في وحدة تحكّم Firebase وتأكَّد من تحديد مفتاح توقيع SHA-1. إذا كنت تستخدم ميزة "روابط التطبيقات"، حدِّد أيضًا مفتاح SHA-256.
في وحدة تحكُّم Firebase، افتح قسم الروابط الديناميكية.
إذا لم يسبق لك إعداد نطاق لروابطك الديناميكية، انقر على الزر البدء واتّبِع التعليمات.
إذا كان لديك نطاق روابط ديناميكية حاليًا، يُرجى تدوينه. يجب تقديم نطاق "روابط ديناميكية" عند إنشاء "روابط ديناميكية" آليًا.

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