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