لتلقي روابط Firebase الديناميكية التي قمت بإنشائها ، يجب عليك تضمين Dynamic Links SDK في تطبيقك واستدعاء طريقة FirebaseDynamicLinks.getDynamicLink()
عند تحميل تطبيقك للحصول على البيانات التي تم تمريرها في الرابط الديناميكي.
إعداد Firebase و Dynamic Links SDK
أضف Firebase إلى مشروع Android ، إذا لم تكن قد قمت بذلك بالفعل.
عند تسجيل تطبيقك ، حدد مفتاح توقيع SHA-1. إذا كنت تستخدم ارتباطات التطبيق ، فحدد أيضًا مفتاح SHA-256 الخاص بك.
في ملف Gradle (على مستوى التطبيق) الوحدة النمطية الخاصة بك (عادةً
<project>/<app-module>/build.gradle.kts
أو<project>/<app-module>/build.gradle
) ، أضف تبعية الروابط الديناميكية مكتبة Android. نوصي باستخدام Firebase Android BoM للتحكم في إصدارات المكتبة.للحصول على تجربة مثالية مع الروابط الديناميكية ، نوصي بتمكين Google Analytics في مشروع Firebase وإضافة Firebase SDK لـ Google Analytics إلى تطبيقك.
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // Add the dependencies for the Dynamic Links and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links-ktx' implementation 'com.google.firebase:firebase-analytics-ktx' }
باستخدام Firebase Android BoM ، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Firebase Android.
(بديل) أضف تبعيات مكتبة Firebase بدون استخدام BoM
إذا اخترت عدم استخدام Firebase BoM ، فيجب عليك تحديد كل إصدار من إصدارات مكتبة Firebase في سطر التبعية الخاص بها.
لاحظ أنه إذا كنت تستخدم مكتبات Firebase متعددة في تطبيقك ، فإننا نوصي بشدة باستخدام BoM لإدارة إصدارات المكتبة ، مما يضمن توافق جميع الإصدارات.
dependencies { // Add the dependencies for the Dynamic Links and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links-ktx:21.1.0' implementation 'com.google.firebase:firebase-analytics-ktx:21.3.0' }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // Add the dependencies for the Dynamic Links and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links' implementation 'com.google.firebase:firebase-analytics' }
باستخدام Firebase Android BoM ، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Firebase Android.
(بديل) أضف تبعيات مكتبة Firebase بدون استخدام BoM
إذا اخترت عدم استخدام Firebase BoM ، فيجب عليك تحديد كل إصدار من إصدارات مكتبة Firebase في سطر التبعية الخاص بها.
لاحظ أنه إذا كنت تستخدم مكتبات Firebase متعددة في تطبيقك ، فإننا نوصي بشدة باستخدام BoM لإدارة إصدارات المكتبة ، مما يضمن توافق جميع الإصدارات.
dependencies { // Add the dependencies for the Dynamic Links and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links:21.1.0' implementation 'com.google.firebase:firebase-analytics:21.3.0' }
- في وحدة تحكم Firebase ، افتح قسم الروابط الديناميكية . اقبل شروط الخدمة إذا طُلب منك ذلك.
أضف عامل تصفية النية للروابط لمواضع معينة
كما هو الحال مع الروابط العميقة العادية ، يجب إضافة عامل تصفية نية جديد إلى النشاط الذي يتعامل مع الروابط الداخلية لتطبيقك. يجب أن يلتقط عامل تصفية النية الروابط العميقة لنطاقك ، لأن الرابط الديناميكي سيعيد التوجيه إلى مجالك إذا كان تطبيقك مثبتًا. هذا مطلوب لتطبيقك لتلقي بيانات الرابط الديناميكي بعد تثبيته / تحديثه من متجر Play وضغط مرة واحدة على زر متابعة. في
AndroidManifest.xml
:<intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="example.com" android:scheme="https"/> </intent-filter>
عندما يفتح المستخدمون رابطًا ديناميكيًا مع ارتباط عميق بالمخطط والمضيف الذي تحدده ، سيبدأ تطبيقك النشاط باستخدام عامل تصفية النية هذا للتعامل مع الرابط.
التعامل مع الروابط العميقة
لتلقي رابط الموضع المعيّن ، اتصل بطريقة
getDynamicLink()
:Kotlin+KTX
Firebase.dynamicLinks .getDynamicLink(intent) .addOnSuccessListener(this) { pendingDynamicLinkData: PendingDynamicLinkData? -> // Get deep link from result (may be null if no link is found) var deepLink: Uri? = null if (pendingDynamicLinkData != null) { deepLink = pendingDynamicLinkData.link } // Handle the deep link. For example, open the linked // content, or apply promotional credit to the user's // account. // ... } .addOnFailureListener(this) { e -> Log.w(TAG, "getDynamicLink:onFailure", e) }
Java
FirebaseDynamicLinks.getInstance() .getDynamicLink(getIntent()) .addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() { @Override public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) { // Get deep link from result (may be null if no link is found) Uri deepLink = null; if (pendingDynamicLinkData != null) { deepLink = pendingDynamicLinkData.getLink(); } // Handle the deep link. For example, open the linked // content, or apply promotional credit to the user's // account. // ... // ... } }) .addOnFailureListener(this, new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "getDynamicLink:onFailure", e); } });
يجب عليك استدعاء
getDynamicLink()
في كل نشاط قد يتم تشغيله بواسطة الارتباط ، على الرغم من أن الرابط قد يكون متاحًا من النية باستخدامgetIntent().getData()
. يؤدي استدعاءgetDynamicLink()
إلى استرداد الارتباط ومسح تلك البيانات بحيث تتم معالجتها مرة واحدة فقط بواسطة تطبيقك.تقوم عادةً باستدعاء
getDynamicLink()
في النشاط الرئيسي بالإضافة إلى أي أنشطة يتم إطلاقها بواسطة عوامل تصفية الهدف التي تطابق الارتباط.تحليلات السجل
يمكن تتبع الأحداث التالية تلقائيًا في Google Analytics وعرضها في وحدة تحكم Firebase.
-
dynamic_link_app_open
-
dynamic_link_first_open
-
dynamic_link_app_update
لتسجيل هذه الأحداث ، يلزمك تهيئة Google Analytics قبل استرداد الرابط لموضع معين. تحقق من استيفاء الشروط التالية:
- اتصل بـ
FirebaseDynamicLinks.getDynamicLink()
في نقاط دخول التطبيق: - أنشطة المشغل. على سبيل المثال:
action="android.intent.action.MAIN"
،category="android.intent.category.LAUNCHER"
. - نقاط دخول النشاط. على سبيل المثال:
onStart()
،onCreate()
. - أنشطة الارتباط العميق.
- قم بإعداد واستخدام Google Analytics:
- قم بتضمين تبعية Google Analytics. عادةً ما يتم إضافة هذا تلقائيًا بواسطة المكون الإضافي
google-services
Gradle. - قم بتضمين ملف تهيئة
google-services.json
في تطبيقك. - اتصل بـ
FirebaseAnalytics.getInstance()
قبل استدعاءFirebaseDynamicLinks.getDynamicLink()
.
التعامل مع الروابط الديناميكية باستخدام روابط التطبيقات
في الإصدار Android 6.0 (المستوى 23 من واجهة برمجة التطبيقات) والإصدارات الأحدث ، يمكنك إعداد تطبيقك للتعامل مع الروابط الديناميكية مباشرةً عندما يكون تطبيقك مثبتًا بالفعل باستخدام روابط تطبيقات Android .
تأكد من إضافة بصمة شهادة SHA256 لتطبيقك إلى مشروعك في وحدة تحكم Firebase . ستتعامل الروابط الديناميكية مع إعداد ارتباط موقع ارتباطات التطبيقات لنطاق الروابط الديناميكية.
أضف عامل تصفية نوايا تم التحقق منه تلقائيًا إلى النشاط الذي سيتعامل مع الارتباط الديناميكي ، مع تعيين المضيف إلى مجال الروابط الديناميكية الخاصة بمشروعك كما هو موجود في وحدة تحكم Firebase . في
AndroidManifest.xml
:<intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:host="example.com/link" android:scheme="http"/> <data android:host="example.com/link" android:scheme="https"/> </intent-filter>
لاحظ أنه يجب تعيين
android:host
على نطاق الروابط الديناميكية ، وليس نطاق الرابط العميق الخاص بك.يجب تسجيل جميع عوامل تصفية الهدف
autoVerify
في البيان الخاص بك من أجل تفعيل روابط التطبيقات. يعالج Firebase هذا تلقائيًا لنطاقات الروابط الديناميكية الخاصة بك ، ولكن يمكنك التحقق من ذلك عن طريق فتح ملفassetlinks.json
المستضاف على نطاق الروابط الديناميكية:https://YOUR_DOMAIN/.well-known/assetlinks.json
يجب تضمين جميع أسماء حزم تطبيقات Firebase.سيتم الآن إرسال الروابط الديناميكية مباشرة إلى تطبيقك. ستتمكن من الحصول على الرابط لموضع معين وبيانات الارتباط الديناميكي الأخرى عن طريق استدعاء
getDynamicLink()
في النشاط الذي أضفت إليه مرشح هدف روابط التطبيقات (كما هو موضح في التعامل مع الروابط الداخلية ).ملاحظة: نظرًا لأن الاستدعاء من خلال ارتباطات التطبيق ينقل المستخدم مباشرةً إلى التطبيق ، فلا يمكن للرابط الديناميكي الالتزام بالحد الأدنى من الإصدار المطلوب. لذلك بمجرد فتح التطبيق ، ستحتاج إلى مقارنة الحد الأدنى من إصدار الرابط الديناميكي ( getminimumappversion ) مقابل PackageInfo.versionCode وإعادة توجيه المستخدم لترقية التطبيق إذا لزم الأمر باستخدام getUpdateAppIntent .
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2023-09-26 (حسب التوقيت العالمي المتفَّق عليه)
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"لا يحتوي على المعلومات التي أحتاج إليها." },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"الخطوات معقدة للغاية / كثيرة جدًا." },{ "type": "thumb-down", "id": "outOfDate", "label":"المحتوى قديم." },{ "type": "thumb-down", "id": "translationIssue", "label":"ثمة مشكلة في الترجمة." },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"مشكلة في العيّنات / التعليمات البرمجية" },{ "type": "thumb-down", "id": "otherDown", "label":"غير ذلك" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"يسهُل فهم المحتوى." },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"ساعَدني المحتوى في حلّ مشكلتي." },{ "type": "thumb-up", "id": "otherUp", "label":"غير ذلك" }]