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

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

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

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

إنشاء DeepLinkRequest

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

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

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

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

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

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

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

كيفية إنشاء DeepLinkRequest من Intent

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

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

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

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

إضافة فلاتر الأهداف

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

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

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

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

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