إنشاء مثيلات DeepLinkMatcher

لربط مثيلات DeepLinkRequest الواردة بالمفاتيح التي يمكن إضافتها إلى الأنشطة السابقة في تطبيقك، عليك تحديد مثيلات DeepLinkMatcher.

‫DeepLinkMatcher هي فئة مجرّدة تتضمّن طريقتَين، هما match وmatchRequest. يجب أن تنفّذ الفئات الفرعية matchRequest، التي تأخذ DeepLinkRequest وتعرض DeepLinkMatcher.MatchResult إذا كان الطلب مطابقًا، أو null في الحالات الأخرى.

بما أنّ عدة مطابِقات قد تطابق طلبًا واحدًا، تنفّذ MatchResult Comparable لترتيب النتائج واختيار أفضل مطابقة.

مَعلمات النوع

تُعرِّف الفئة DeepLinkMatcher مَعلمتَين من النوع العام: DeepLinkMatcher<T : Any, R : DeepLinkMatcher.MatchResult<T>>.

  • T : Any: نوع مفتاح التنقّل في الوجهة (مثل UserProfileKey أو NavKey) الذي يتم عرضه عندما يتطابق الرابط العميق.
  • ‫R : DeepLinkMatcher.MatchResult<T>: النوع الفرعي المحدّد لـ MatchResult الذي تعرضه السمتان matchRequest وmatch.

تحتفظ مَعلمة النوع الثانية، R، بمعلومات المطابقة المتخصّصة بدون الحاجة إلى تحويل النوع إلى نوع فرعي غير محدّد:

طلبات الفلترة الأولية

يمكن أن تحدّد عمليات تنفيذ DeepLinkMatcher قائمة بمثيلات DeepLinkMatcher.Filter لفلترة الطلبات قبل تقييمها.

تتضمّن المكتبة دوال مساعِدة لإنشاء فلاتر شائعة:

يتيح لك هذا الأسلوب إعادة استخدام نمط معرّف الموارد المنتظم (URI) نفسه لإجراءات مختلفة، مثل العرض مقابل التعديل:

بما أنّ Filter هي واجهة وظيفية (SAM)، يمكنك أيضًا إنشاء فلاتر باستخدام تعبيرات lambda:

استخدام أدوات المطابقة المقدَّمة

تتضمّن المكتبة ثلاث عمليات تنفيذ عادية لـ DeepLinkMatcher: StaticKeyDeepLinkMatcher وUriDeepLinkMatcher وBackStackMatcher. إذا لم تكن أدوات المطابقة هذه تستوفي متطلبات تطبيقك، يمكنك إنشاء أدوات مطابقة مخصّصة للروابط العميقة.

بالنسبة إلى الروابط لصفحات معيّنة الأساسية التي لا تتضمّن وسيطات لاستخراجها، استخدِم StaticKeyDeepLinkMatcher لمطابقة الطلبات التي تستوفي جميع الفلاتر المقدَّمة.

على سبيل المثال، لمعالجة الأهداف في ACTION_APPLICATION_PREFERENCES:

لمطابقة معرّفات الموارد المنتظمة (URI) الهرمية مع الأنماط واستخراج الوسيطات، استخدِم UriDeepLinkMatcher. على سبيل المثال، يمكنك مطابقة www.example.com/users/{id} لاستخراج الوسيطة id إلى مفتاح وجهة. لمزيد من المعلومات، يُرجى الاطّلاع على مطابقة الروابط لصفحات معيّنة في التطبيق باستخدام معرّف الموارد المنتظم (URI).

إنشاء أنشطة سابقة اصطناعية

لتحديد كيفية إنشاء أنشطة سابقة اصطناعية من مطابقة ناجحة، استخدِم BackStackMatcher. بدلاً من إنشاء مثيل BackStackMatcher مباشرةً، يمكنك استدعاء دالة الإضافة withBackStack على DeepLinkMatcher آخر. تُغلِّف الدالة withBackStack جهاز الاستقبال في BackStackMatcher الذي يعرض BackStackMatchResult يحتوي على أنشطة سابقة اصطناعية List. بما أنّ BackStackMatchResult يفوّض المقارنة إلى نتيجة المطابقة الأساسية، فإنّ تضمين أداة مطابقة في withBackStack يحافظ على ترتيب المطابقة الأصلي.

للتعامل مع الأنشطة السابقة الناتجة عن نشاطك، يُرجى الاطّلاع على مطابقة طلب وارد.