لاستلام مبلغ Firebase Dynamic Links الذي
الذي أنشأته، عليك تضمين حزمة تطوير البرامج (SDK) Dynamic Links في تطبيقك وطلب
FirebaseDynamicLinks.getDynamicLink()
عند تحميل تطبيقك إلى
للحصول على البيانات التي يتم تمريرها في Dynamic Link.
إعداد Firebase وحزمة تطوير البرامج (SDK) الخاصة بـ "Dynamic Links"
إذا لم تكن قد فعلت ذلك بالفعل، إضافة Firebase إلى مشروع Android
عند تسجيل تطبيقك، حدِّد مفتاح توقيع SHA-1. في حال استخدام روابط التطبيقات، يمكنك أيضًا تحديد مفتاح SHA-256.
-
في ملف Gradle للوحدة (على مستوى التطبيق) (عادةً
<project>/<app-module>/build.gradle.kts
أو<project>/<app-module>/build.gradle
)، أضف التبعية لمكتبة Dynamic Links لنظام التشغيل Android. ننصح باستخدام Firebase Android BoM للتحكم في إصدارات المكتبة.للحصول على تجربة مثالية مع Dynamic Links، ننصح تفعيل Google Analytics في مشروعك على Firebase وإضافة حزمة تطوير البرامج (SDK) لمنصّة Firebase الخاصة بخدمة "إحصاءات Google" إلى تطبيقك.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.1.2")) // 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، سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Android في Firebase.
(بديل) إضافة اعتماديات مكتبة 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:22.1.0' implementation 'com.google.firebase:firebase-analytics:22.0.2' }
- في وحدة تحكُّم Firebase، افتح Dynamic Links. . اقبل بنود الخدمة إذا طُلب منك ذلك.
إضافة فلتر أهداف لروابط صفحات التطبيق
كما هو الحال مع
روابط عادية لصفحات في التطبيق، عليك إضافة فلتر أهداف جديد إلى النشاط الذي يعالج
روابط لمواضع معينة لتطبيقك. يجب أن يرصد فلتر الأهداف الروابط لصفحات في نطاقك، بما أنّ
سيُعيد Dynamic Link التوجيه إلى نطاقك إذا كان تطبيقك مثبّتًا. يجب توفير هذه السمة لكي يتمكّن تطبيقك من
تلقّي بيانات "Dynamic Link" بعد تثبيتها أو تحديثها من "متجر 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>
عندما يفتح المستخدمون Dynamic Link باستخدام رابط لصفحة في التطبيق والمضيف الذي تحدّده، سيبدأ تطبيقك ابدأ النشاط باستخدام فلتر الأهداف هذا لمعالجة الرابط.
التعامل مع الروابط لصفحات معيّنة
للحصول على رابط لصفحة في التطبيق، يمكنك استدعاء طريقة 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()
التعامل مع "Dynamic Links" باستخدام "روابط التطبيق"
في الإصدار Android 6.0 (المستوى 23 من واجهة برمجة التطبيقات) والإصدارات الأحدث، يمكنك إعداد تطبيقك للتعامل مع Dynamic Links. مباشرةً عندما يكون تطبيقك مثبّتًا بالفعل باستخدام روابط تطبيقات Android.
يُرجى التأكّد من إضافة الملف المرجعي لشهادة SHA256 لتطبيقك إلى مشروعك في وحدة تحكّم Firebase. سيتولى Dynamic Links إعداد الربط بالموقع الإلكتروني لروابط التطبيقات في ما يخصّ نطاقك على Dynamic Links.
أضِف فلتر أهداف تم التحقق منه تلقائيًا إلى النشاط الذي سيتعامل مع Dynamic Link، ما يؤدي إلى ضبط
مضيفًا لنطاق Dynamic Links الخاص بمشروعك باسم
تم العثور عليه في وحدة تحكّم 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
على نطاق Dynamic Links، وليس على النطاق.
من الرابط لصفحة في التطبيق
يجب تسجيل جميع فلاتر الأهداف البالغ عددها autoVerify
في ملف البيان لكي يكون التطبيق المستخدَم.
روابط للتفاعل. يعالج Firebase هذا الإعداد تلقائيًا لنطاقات Dynamic Links، ولكن يمكنك التحقق منها.
هذا من خلال فتح ملف assetlinks.json
المستضاف على نطاق Dynamic Links:
https://YOUR_DOMAIN/.well-known/assetlinks.json
سيتم إرسال مبلغ Dynamic Links مباشرةً إلى تطبيقك. ستتمكن من الحصول على الرابط لموضع معيّن وغيرها من
بيانات Dynamic Link من خلال الاتصال بـ getDynamicLink()
ضمن "النشاط" الذي أضفته في "روابط التطبيق"
فلتر الأهداف إلى (كما هو موضّح في
التعامل مع الروابط المؤدية إلى صفحات في التطبيق).
ملاحظة: بما أنّ الاستدعاء من خلال "روابط التطبيق" ينقل المستخدم إلى التطبيق مباشرةً، ستظهر لا يمكن للرابط الديناميكي تنفيذ الحد الأدنى المطلوب للإصدار. لذلك بمجرد فتح التطبيق، إلى مقارنة الحد الأدنى لإصدار الرابط الديناميكي ( getminappversion) مقابل PackageInfo.versionCode ثم إعادة توجيه المستخدم لترقية التطبيق إذا لزم الأمر باستخدام getUpdateAppIntent: