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