Derin bağlantıları destekleme

1.2.0 sürümünden itibaren Navigation 3, DeepLinkRequest ve DeepLinkMatcher sınıflarını kullanarak uygulamanızdaki hedeflere derin bağlantı oluşturmayı destekler.

Uygulamanızda derin bağlantıları desteklemek için aşağıdaki adımları tamamlayın:

  1. Uygulamanızın hangi URI'leri işleyebileceğini belirtmek için AndroidManifest.xml dosyanızda intent filtreleri tanımlayın.
  2. Gelen istekleri gezinme tuşlarınızla eşlemek için DeepLinkMatcher örnek oluşturun.
  3. Etkinliğinizin onCreate veya onNewIntent yönteminde gelen istekleri eşleştirin ve eski yığınınızı buna göre güncelleyin.

DeepLinkRequest oluşturun

DeepLinkRequest, gelen bir derin bağlantıyı temsil eder. Bir DeepLinkUri ve intent işlemi veya MIME türü gibi ek bilgiler içeren isteğe bağlı bir RequestExtras içerir.

DeepLinkRequest ekstrası sunun

Derin bağlantıyla ilgili ek bilgileri depolamak için RequestExtras sınıfını kullanın. Kitaplık, ekstraları tanımlamayı ve örneklendirmeyi tip güvenli hale getirmek için RequestExtrasKey arayüzünü ve requestExtras DSL'yi sağlar.

Ayrıca kitaplık, iki ek anahtar ve ilişkili yardımcılar sağlar:

  • MimeTypeExtrasKey: MIME türünü String depolamak için kullanılır.
  • ActionExtrasKey (Yalnızca Android): Intent işlemini depolamak için kullanılır String.

Kendi özel ekstralarınızı tanımlamak için RequestExtrasKey arayüzünü türü belirtilmiş bir genel türle uygulayın:

Boş bir örnek oluşturmak için emptyRequestExtras() yöntemini de kullanabilir veya + (plus) ve - (minus) operatörlerini kullanarak ekstraları birleştirebilirsiniz.

Intent parametresinden DeepLinkRequest oluşturun

Android'de doğrudan Intent üzerinden DeepLinkRequest oluşturabilirsiniz. Bu şekilde oluşturulduğunda DeepLinkRequest şu şekilde oluşturulur:

DeepLinkMatcher, gelen DeepLinkRequest örneklerini uygulamanızın eski yığınına eklenebilecek gezinme tuşlarıyla eşler. Navigation 3, üç yerleşik eşleştirici sunar: kalıp tabanlı URI eşleştirme için UriDeepLinkMatcher, temel bağlantılar için StaticKeyDeepLinkMatcher ve sentetik eski yığınlar oluşturmak için BackStackMatcher. Kitaplık, yerleşik eşleştiricilerin kapsamadığı kullanım alanları için özel eşleştiricileri de destekler.

Daha fazla bilgi için DeepLinkMatcher oluşturma başlıklı makaleyi inceleyin.

Intent filtreleri ekleme

Etkinliğinizi başlatmak için bir derin bağlantıyı etkinleştirmek istiyorsanız uygulamanızın AndroidManifest.xml dosyasında eşleşen <intent-filter> öğelerini tanımlamanız gerekir. Daha fazla bilgi için Gelen bağlantılar için intent filtreleri ekleme başlıklı makaleyi inceleyin.

Gelen bir isteği eşleştirme

DeepLinkMatcher örneklerinizi oluşturduktan sonra etkinliğinizdeki gelen istekleri eşleştirebilirsiniz.

Gelen bir isteği eşleştirmek için aşağıdaki adımları uygulayın:

  1. DeepLinkMatcher örneklerinizi örneklendirin.
  2. Açıkça veya çoklu bağlamaları kullanarak tüm DeepLinkMatcher örneklerinizi harmanlayın.
  3. Gelen Intent üzerinden DeepLinkRequest oluşturun.
  4. İsteği tüm eşleştiricilerle eşleştirir ve en iyi eşleşmeyi bulur.
  5. Eşleşme sonucundan eski yığını oluşturun.