لتلقي روابط Firebase الديناميكية التي
الذي أنشأته، عليك تضمين حزمة تطوير البرامج (SDK) للروابط الديناميكية في تطبيقك واستدعاء
FirebaseDynamicLinks.getDynamicLink()
عند تحميل تطبيقك إلى
الحصول على البيانات التي يتم تمريرها في الرابط الديناميكي.
إعداد Firebase وحزمة تطوير البرامج (SDK) للروابط الديناميكية
إذا لم تكن قد فعلت ذلك بالفعل، إضافة Firebase إلى مشروع Android
عند تسجيل تطبيقك، حدِّد مفتاح توقيع SHA-1. في حال استخدام روابط التطبيقات، يمكنك أيضًا تحديد مفتاح SHA-256.
-
في ملف Gradle للوحدة (على مستوى التطبيق) (عادةً
<project>/<app-module>/build.gradle.kts
أو<project>/<app-module>/build.gradle
)، إضافة التبعية لمكتبة الروابط الديناميكية لنظام التشغيل Android. ننصح باستخدام قائمة مواد العرض لنظام Android في Firebase للتحكم في إصدارات المكتبة.للحصول على أفضل تجربة باستخدام الروابط الديناميكية، ننصح تفعيل "إحصاءات Google" في مشروعك على 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' }
باستخدام قائمة قائمتها التشغيلية (Android BoM) من Firebase سيستخدم تطبيقك دائمًا إصدارات متوافقة من مكتبات Android في Firebase.
(بديل) إضافة تبعيات مكتبة Firebase بدون استخدام BoM
إذا اخترت عدم استخدام قائمة عناصر Firebase، يجب تحديد كل إصدار من إصدارات مكتبة 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، افتح الروابط الديناميكية . اقبل بنود الخدمة إذا طُلب منك ذلك.
إضافة فلتر أهداف لروابط صفحات التطبيق
كما هو الحال مع
روابط عادية لصفحة في التطبيق، عليك إضافة فلتر أهداف جديد إلى النشاط الذي يعالج
روابط لمواضع معينة لتطبيقك. يجب أن يرصد فلتر الأهداف الروابط لصفحات في نطاقك، بما أنّ
سيُعيد الرابط الديناميكي التوجيه إلى نطاقك في حال تثبيت تطبيقك. يجب توفير هذه السمة لكي يتمكّن تطبيقك من
تلقّي بيانات الرابط الديناميكي بعد تثبيته/تحديثها من "متجر 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" وعرضها في "وحدة تحكُّم Firebase".
dynamic_link_app_open
dynamic_link_first_open
dynamic_link_app_update
لتسجيل هذه الأحداث، عليك ضبط "إحصاءات Google" قبل لاسترداد الرابط لصفحة في التطبيق. تحقَّق من استيفاء الشروط التالية:
- الاتصال بـ
FirebaseDynamicLinks.getDynamicLink()
في نقاط الدخول الخاصة بالتطبيق: - أنشطة مشغّل التطبيقات: مثلاً:
action="android.intent.action.MAIN"
,category="android.intent.category.LAUNCHER"
- نقاط دخول الأنشطة مثلاً:
onStart()
،onCreate()
. - أنشطة الروابط لصفحات في التطبيق
- إعداد "إحصاءات Google" واستخدامها:
- يجب تضمين اعتمادية "إحصاءات Google". وعادة ما تتم إضافة هذه البيانات تلقائيًا من خلال
google-services
المكوّن الإضافي لنظام Gradle - تضمين
ملف إعداد واحد (
google-services.json
) في تطبيقك. - الاتصال بالرقم
FirebaseAnalytics.getInstance()
قبل إجراء المكالمةFirebaseDynamicLinks.getDynamicLink()
التعامل مع الروابط الديناميكية باستخدام روابط التطبيقات
في نظام التشغيل Android 6.0 (المستوى 23 من واجهة برمجة التطبيقات) والإصدارات الأحدث، يمكنك إعداد تطبيقك للتعامل مع الروابط الديناميكية. مباشرةً عندما يكون تطبيقك مثبّتًا بالفعل باستخدام Android App Links:
يُرجى التأكّد من إضافة الملف المرجعي لشهادة 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()
ضمن "النشاط الذي أضفته" ضمن "روابط التطبيق"
فلتر الأهداف إلى (كما هو موضّح في
التعامل مع الروابط المؤدية إلى صفحات في التطبيق).
ملاحظة: بما أنّ الاستدعاء من خلال "روابط التطبيق" ينقل المستخدم إلى التطبيق مباشرةً، ستظهر لا يمكن للرابط الديناميكي تنفيذ الحد الأدنى المطلوب للإصدار. لذلك بمجرد فتح التطبيق، إلى مقارنة الحد الأدنى لإصدار الرابط الديناميكي ( getminappversion) مقابل PackageInfo.versionCode ثم إعادة توجيه المستخدم لترقية التطبيق إذا لزم الأمر باستخدام getUpdateAppIntent: