إنشاء مثيلات 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 لفلترة الطلبات قبل تقييمها.

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

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

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

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

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

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

على سبيل المثال، للتعامل مع أغراض ACTION_APPLICATION_PREFERENCES:

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

إنشاء حزمة الأنشطة السابقة اصطناعية

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

للتعامل مع حزمة الخلفية الناتجة في نشاطك، راجِع مطابقة طلب وارد.