پشتیبانی از پیوندهای عمیق

از نسخه ۱.۲.۰، «ناوبری ۳» از پیوند عمیق به مقصدهای درون برنامه شما بااستفاده از کلاس‌های DeepLinkRequest و DeepLinkMatcher پشتیبانی می‌کند.

برای پشتیبانی از پیوندهای عمیق در برنامه‌تان، مراحل زیر را تکمیل کنید:

  1. فیلترهای قصد را در AndroidManifest.xml تعریف کنید تا مشخص شود برنامه‌تان کدام URI را می‌تواند مدیریت کند.
  2. نمونه‌های DeepLinkMatcher را ایجاد کنید تا درخواست‌های ورودی را به کلیدهای پیمایش خود نگاشت کنید.
  3. درخواست‌های ورودی را در روش onCreate یا onNewIntent فعالیتتان مطابقت دهید و پشته قبلی‌ها را براساس آن به‌روز کنید.

ایجاد DeepLinkRequest

DeepLinkRequest نشان‌دهنده پیوند عمیق ورودی است. این شامل یک DeepLinkUri و RequestExtras اختیاری با اطلاعات اضافی، مانند اقدام هدف یا نوع MIME است.

ارائه DeepLinkRequest مورد اضافی

برای ذخیره کردن اطلاعات تکمیلی مربوط به لینک عمیق، از کلاس RequestExtras استفاده کنید. برای اینکه تعریف و نمونه‌سازی موارد اضافی ازنظر نوع ایمن باشد، کتابخانه میانای RequestExtrasKey و requestExtras DSL را ارائه می‌دهد.

علاوه‌براین، کتابخانه دو کلید اضافی و کمک‌افزارهای مرتبط ارائه می‌دهد:

  • MimeTypeExtrasKey: برای ذخیره نوع MIME String استفاده می‌شود.
  • ActionExtrasKey (فقط Android): برای ذخیره کردن کنش Intent String استفاده می‌شود.

برای تعریف کردن موارد اضافی سفارشی خودتان، میانای RequestExtrasKey را با نوع عمومی پیاده‌سازی کنید:

همچنین می‌توانید از emptyRequestExtras() برای ساختن نمونه خالی استفاده کنید، یا بااستفاده از عملگرهای + (plus) و - (minus)، موارد اضافی را ترکیب کنید.

ایجاد DeepLinkRequest از Intent

در Android، می‌توانید مستقیماً از Intent، DeepLinkRequest ایجاد کنید. وقتی به این روش ساخته شود، DeepLinkRequest به‌صورت زیر ساخته می‌شود:

  • ‫uri از فیلد data قصد کپی می‌شود.
  • اگر تهی نباشد، نوع MIME و موارد اضافی کنش از فیلدهای هدف مربوطه تنظیم می‌شود.
  • همه intent.extras با مقادیر غیرتهی به‌عنوان SavedState در DeepLinkRequest.IntentExtrasKey ذخیره می‌شوند.
  • هرگونه موارد اضافی که بااستفاده از پارامتر extras ارائه شده باشد اضافه می‌شود.

DeepLinkMatcher نمونه‌های ورودی DeepLinkRequest را به کلیدهای پیمایش که می‌توانند به پشته قبلی‌ها برنامه شما اضافه شوند نگاشت می‌کند. ‫Navigation 3 سه تطبیق‌دهنده داخلی ارائه می‌دهد: UriDeepLinkMatcher برای تطبیق URI مبتنی بر الگو، StaticKeyDeepLinkMatcher برای پیوندهای پایه، و BackStackMatcher برای ساخت پشته‌های قبلی‌ها مصنوعی. این کتابخانه همچنین از تطبیق‌دهنده‌های سفارشی برای موارد استفاده‌ای که تطبیق‌دهنده‌های داخلی پوشش نمی‌دهند پشتیبانی می‌کند.

برای اطلاعات بیشتر، ایجاد DeepLinkMatchers را ببینید.

افزودن فیلترهای قصد

برای فعال کردن پیوند عمیق برای شروع فعالیتتان، باید عناصر <intent-filter> منطبق را در AndroidManifest.xml برنامه‌تان تعریف کنید. برای اطلاعات بیشتر، افزودن فیلترهای قصد برای پیوندهای ورودی را ببینید.

مطابقت دادن درخواست ورودی

پس‌از ایجاد نمونه‌های DeepLinkMatcher، می‌توانید درخواست‌های ورودی را در فعالیتتان مطابقت دهید.

برای مطابقت دادن درخواست ورودی، مراحل زیر را تکمیل کنید:

  1. نمونه‌های DeepLinkMatcher خود را نمونه‌سازی کنید.
  2. همه نمونه‌های DeepLinkMatcher را به‌طور صریح یا بااستفاده از اتصال چندگانه مقایسه کنید.
  3. ایجاد DeepLinkRequest از Intent ورودی.
  4. درخواست را با همه مطابقت‌دهنده‌ها مطابقت می‌دهد و بهترین مطابقت را پیدا می‌کند.
  5. پشته قبلی‌ها را از نتیجه مطابقت ایجاد کنید.