গভীর লিঙ্ক সমর্থন

সংস্করণ ১.২.০ থেকে শুরু করে, নেভিগেশন ৩ আপনার অ্যাপের গন্তব্যস্থলে DeepLinkRequest এবং DeepLinkMatcher ক্লাস ব্যবহার করে ডিপ লিঙ্কিং সমর্থন করে।

আপনার অ্যাপে ডিপ লিঙ্ক সমর্থন করতে, নিম্নলিখিত ধাপগুলি সম্পন্ন করুন:

  1. আপনার অ্যাপ কোন কোন URI হ্যান্ডেল করতে পারবে তা নির্দিষ্ট করতে আপনার AndroidManifest.xmlইন্টেন্ট ফিল্টার সংজ্ঞায়িত করুন
  2. আগত অনুরোধগুলোকে আপনার নেভিগেশন কী-গুলোর সাথে ম্যাপ করতে DeepLinkMatcher ইনস্ট্যান্স তৈরি করুন
  3. আপনার অ্যাক্টিভিটির onCreate বা onNewIntent মেথডে আগত অনুরোধগুলো মেলান এবং সেই অনুযায়ী আপনার ব্যাক স্ট্যাক আপডেট করুন।

একটি DeepLinkRequest তৈরি করুন

একটি DeepLinkRequest একটি আগত ডিপ লিঙ্ককে প্রতিনিধিত্ব করে। এতে একটি DeepLinkUri এবং ঐচ্ছিক RequestExtras থাকে, যাতে ইন্টেন্ট অ্যাকশন বা MIME টাইপের মতো অতিরিক্ত তথ্য থাকে।

DeepLinkRequest অতিরিক্ত প্রদান করুন

ডিপ লিঙ্ক সম্পর্কিত অতিরিক্ত তথ্য সংরক্ষণ করতে RequestExtras ক্লাসটি ব্যবহার করুন। এক্সট্রা-এর সংজ্ঞা ও ইনস্ট্যানশিয়েটকে টাইপ-সেফ করার জন্য, লাইব্রেরিটি RequestExtrasKey ইন্টারফেস এবং requestExtras DSL প্রদান করে।

এছাড়াও, লাইব্রেরিটি দুটি অতিরিক্ত কী এবং সংশ্লিষ্ট হেল্পার প্রদান করে:

  • MimeTypeExtrasKey : একটি MIME টাইপ String সংরক্ষণ করতে ব্যবহৃত হয়।
  • ActionExtrasKey (শুধুমাত্র অ্যান্ড্রয়েডের জন্য): একটি Intent এর অ্যাকশন String সংরক্ষণ করতে ব্যবহৃত হয়।

আপনার নিজস্ব কাস্টম এক্সট্রা সংজ্ঞায়িত করতে, একটি টাইপড জেনেরিক সহ RequestExtrasKey ইন্টারফেসটি ইমপ্লিমেন্ট করুন:

আপনি একটি খালি ইনস্ট্যান্স তৈরি করতে emptyRequestExtras() ব্যবহার করতে পারেন, অথবা + ( plus ) এবং - ( minus ) অপারেটর ব্যবহার করে এক্সট্রাগুলো একত্রিত করতে পারেন।

একটি Intent থেকে একটি DeepLinkRequest তৈরি করুন

অ্যান্ড্রয়েডে, আপনি সরাসরি একটি Intent থেকে একটি DeepLinkRequest তৈরি করতে পারেন। এভাবে তৈরি করা হলে, DeepLinkRequest টি নিম্নোক্তভাবে গঠিত হয়:

  • uri ইন্টেন্টের data ফিল্ড থেকে কপি করা হয়।
  • নাল না হলে, MIME টাইপ এবং অ্যাকশন এক্সট্রাগুলো সংশ্লিষ্ট ইন্টেন্ট ফিল্ড থেকে সেট করা হয়।
  • যেসব intent.extras এর মান null নয়, সেগুলোকে DeepLinkRequest.IntentExtrasKey তে একটি SavedState হিসেবে সংরক্ষণ করা হয়।
  • extras প্যারামিটার ব্যবহার করে প্রদান করা যেকোনো অতিরিক্ত বিষয় যোগ করা হয়।

একটি DeepLinkMatcher আগত DeepLinkRequest ইনস্ট্যান্সগুলোকে নেভিগেশন কী-এর সাথে ম্যাপ করে, যা আপনার অ্যাপের ব্যাক স্ট্যাকে যোগ করা যায়। Navigation 3 তিনটি বিল্ট-ইন ম্যাচিং টুল প্রদান করে: প্যাটার্ন-ভিত্তিক URI ম্যাচিংয়ের জন্য UriDeepLinkMatcher , সাধারণ লিঙ্কের জন্য StaticKeyDeepLinkMatcher , এবং সিন্থেটিক ব্যাক স্ট্যাক তৈরির জন্য BackStackMatcher । লাইব্রেরিটি এমন সব ব্যবহারের জন্য কাস্টম ম্যাচিং টুলও সমর্থন করে, যা বিল্ট-ইন ম্যাচিং টুলগুলোর আওতাভুক্ত নয়।

আরও তথ্যের জন্য, Create DeepLinkMatchers দেখুন।

ইন্টেন্ট ফিল্টার যোগ করুন

আপনার অ্যাক্টিভিটি শুরু করার জন্য একটি ডিপ লিঙ্ক সক্ষম করতে, আপনাকে অবশ্যই আপনার অ্যাপের AndroidManifest.xml এ সংশ্লিষ্ট <intent-filter> এলিমেন্টগুলো সংজ্ঞায়িত করতে হবে। আরও তথ্যের জন্য, "ইনকামিং লিঙ্কের জন্য ইন্টেন্ট ফিল্টার যোগ করুন" দেখুন।

আগত অনুরোধের সাথে মেলান

আপনার DeepLinkMatcher ইনস্ট্যান্সগুলো তৈরি করার পরে, আপনি আপনার অ্যাক্টিভিটিতে আগত অনুরোধগুলো মেলাতে পারবেন।

আগত অনুরোধটি মেলাতে, নিম্নলিখিত ধাপগুলি সম্পন্ন করুন:

  1. আপনার DeepLinkMatcher ইনস্ট্যান্সগুলো তৈরি করুন
  2. আপনার সমস্ত DeepLinkMatcher ইনস্ট্যান্সগুলিকে সুস্পষ্টভাবে অথবা মাল্টিবাইন্ডিং ব্যবহার করে একত্রিত করুন
  3. আগত Intent থেকে একটি DeepLinkRequest তৈরি করুন
  4. অনুরোধটি সমস্ত সম্ভাব্য মিলের সাথে মিলিয়ে দেখুন এবং সেরা মিলটি খুঁজে বের করুন।
  5. ম্যাচের ফলাফল থেকে ব্যাক স্ট্যাক তৈরি করুন