إتاحة الروابط لصفحات في التطبيق

بدءًا من الإصدار 1.2.0، تتوافق Navigation 3 مع الربط بصفحات معيّنة في تطبيقك باستخدام الفئتين DeepLinkRequest وDeepLinkMatcher.

لإتاحة روابط الصفحات في تطبيقك، أكمِل الخطوات التالية:

  1. حدِّد فلاتر intent في AndroidManifest.xml لتحديد معرّفات الموارد الموحّدة التي يمكن لتطبيقك التعامل معها.
  2. أنشئ DeepLinkMatcher مثيلات لربط الطلبات الواردة بمفاتيح التنقّل.
  3. مطابقة الطلبات الواردة في طريقة onCreate أو onNewIntent الخاصة بالنشاط وتعديل سجلّ الرجوع وفقًا لذلك

إنشاء DeepLinkRequest

يمثّل DeepLinkRequest رابطًا عميقًا واردًا. يحتوي على DeepLinkUri وRequestExtras اختياري مع معلومات إضافية، مثل intent action أو نوع MIME.

تقديم DeepLinkRequest إضافية

لتخزين معلومات إضافية ذات صلة بالرابط لصفحة معيّنة، استخدِم الفئة RequestExtras. لإتاحة تحديد أنواع البيانات الإضافية وإنشائها بطريقة آمنة، توفّر المكتبة واجهة RequestExtrasKey ولغة requestExtras الخاصة بالمجال.

بالإضافة إلى ذلك، توفّر المكتبة مفتاحَين إضافيَّين وأدوات مساعدة مرتبطة بهما:

  • MimeTypeExtrasKey: يُستخدَم لتخزين نوع MIME String.
  • ActionExtrasKey (على أجهزة Android فقط): تُستخدَم لتخزين إجراء Intent String.

لتحديد الإضافات المخصّصة، نفِّذ واجهة RequestExtrasKey مع نوع عام:

يمكنك أيضًا استخدام emptyRequestExtras() لإنشاء مثيل فارغ، أو دمج الإضافات باستخدام عاملي التشغيل + (plus) و- (minus).

إنشاء DeepLinkRequest من Intent

على جهاز Android، يمكنك إنشاء DeepLinkRequest مباشرةً من Intent. عند إنشاء DeepLinkRequest بهذه الطريقة، يتم إنشاؤه على النحو التالي:

  • يتم نسخ uri من الحقل data في الغرض.
  • إذا لم يكن فارغًا، يتم ضبط نوع MIME والإجراء extras من حقول intent ذات الصلة.
  • يتم حفظ جميع intent.extras التي تتضمّن قيمًا غير فارغة كـ SavedState في DeepLinkRequest.IntentExtrasKey.
  • تتم إضافة أي إضافات أخرى يتم توفيرها باستخدام المَعلمة extras.

تعمل DeepLinkMatcher على ربط مثيلات DeepLinkRequest الواردة بمفاتيح التنقّل التي يمكن إضافتها إلى سجلّ الأنشطة السابقة في تطبيقك. توفّر Navigation 3 ثلاث أدوات مطابقة مضمّنة: UriDeepLinkMatcher لمطابقة عناوين URI المستندة إلى الأنماط، وStaticKeyDeepLinkMatcher للروابط الأساسية، وBackStackMatcher لإنشاء حِزم احتياطية اصطناعية. تتيح المكتبة أيضًا استخدام أدوات مطابقة مخصّصة لحالات الاستخدام التي لا تغطّيها أدوات المطابقة المضمّنة.

لمزيد من المعلومات، يُرجى الاطّلاع على إنشاء DeepLinkMatchers.

إضافة فلاتر intent

لتفعيل رابط لصفحة معيّنة من أجل بدء نشاطك، عليك تحديد عناصر <intent-filter> المطابقة في AndroidManifest.xml لتطبيقك. لمزيد من المعلومات، اطّلِع على إضافة فلاتر أهداف للروابط الواردة.

مطابقة طلب وارد

بعد إنشاء مثيلات DeepLinkMatcher، يمكنك مطابقة الطلبات الواردة في نشاطك.

لمطابقة طلب وارد، أكمِل الخطوات التالية:

  1. إنشاء مثيل لـ DeepLinkMatcher.
  2. جمِّع كل مثيلات DeepLinkMatcher، إما بشكل صريح أو باستخدام عمليات الربط المتعددة.
  3. أنشئ DeepLinkRequest من Intent الوارد.
  4. مطابقة الطلب مع جميع أدوات المطابقة والعثور على أفضل تطابق
  5. أنشئ حزمة الأنشطة السابقة من نتيجة المطابقة.