DeepLinkMatcher örnekleri oluşturma

Gelen DeepLinkRequest örneklerini uygulamanızın eski yığınına eklenebilecek anahtarlarla eşlemek için DeepLinkMatcher örnekleri tanımlarsınız.

DeepLinkMatcher, match ve matchRequest olmak üzere iki yöntem içeren soyut bir sınıftır. Alt sınıflar, bir DeepLinkRequest alan ve istek eşleşirse DeepLinkMatcher.MatchResult, aksi takdirde null döndüren matchRequest yöntemini uygulamalıdır.

Birden fazla eşleştirici tek bir istekle eşleşebileceğinden MatchResult, sonuçları sıralamak ve en iyi eşleşmeyi seçmek için Comparable kullanır.

Tür parametreleri

DeepLinkMatcher sınıfı iki genel tür parametresi tanımlar: DeepLinkMatcher<T : Any, R : DeepLinkMatcher.MatchResult<T>>.

  • T : Any: Derin bağlantı eşleştiğinde döndürülen hedef gezinme anahtarı türü (ör. UserProfileKey veya NavKey).
  • R : DeepLinkMatcher.MatchResult<T>: matchRequest ve match tarafından döndürülen belirli MatchResult alt türü.

İkinci tür parametresi olan R, kontrol edilmeyen alt türe dönüştürme işlemine gerek kalmadan özel eşleşme bilgilerini korur:

Ön filtre istekleri

DeepLinkMatcher uygulamaları, istekleri değerlendirmeden önce filtrelemek için bir DeepLinkMatcher.Filter örnekleri listesi belirtebilir.

Kitaplıkta, yaygın olarak kullanılan filtreleri oluşturmak için yardımcı işlevler bulunur:

Bu yaklaşım, görüntüleme ve düzenleme gibi farklı işlemler için aynı URI kalıbını yeniden kullanmanıza olanak tanır:

Filter işlevsel (SAM) bir arayüz olduğundan lambda ifadelerini kullanarak da filtre oluşturabilirsiniz:

Sağlanan eşleştiricileri kullanma

Kitaplıkta üç standart DeepLinkMatcher uygulaması bulunur: StaticKeyDeepLinkMatcher, UriDeepLinkMatcher ve BackStackMatcher. Bu eşleştiriciler uygulamanızın gereksinimlerini karşılamıyorsa özel derin bağlantı eşleştiriciler oluşturabilirsiniz.

Ayıklanacak bağımsız değişkenleri olmayan temel derin bağlantılarda, sağlanan tüm filtreleri karşılayan eşleşen istekleri eşleştirmek için StaticKeyDeepLinkMatcher kullanın.

Örneğin, ACTION_APPLICATION_PREFERENCES ile ilgili amaçları işlemek için:

Hiyerarşik URI'ları kalıplarla eşleştirmek ve bağımsız değişkenleri ayıklamak için UriDeepLinkMatcher kullanın. Örneğin, id bağımsız değişkenini bir hedef anahtara ayıklamak için www.example.com/users/{id} ile eşleştirebilirsiniz. Daha fazla bilgi için URI derin bağlantılarını eşleştirme başlıklı makaleyi inceleyin.

Sentetik bir eski yığın oluşturma

Başarılı bir eşleşmeden sentetik bir eski yığının nasıl oluşturulacağını tanımlamak için BackStackMatcher kullanın. BackStackMatcher sınıfını doğrudan örneklendirmek yerine başka bir DeepLinkMatcher üzerinde withBackStack uzantı işlevini çağırın. withBackStack, alıcıyı yapay bir eski yığın List içeren BackStackMatchResult döndüren bir BackStackMatcher içine sarmalar. BackStackMatchResult, karşılaştırmayı temel eşleşme sonucuna devrettiğinden, bir eşleştiriciyi withBackStack ile sarmalamak orijinal eşleşme sıralamasını korur.

Etkinliğinizde ortaya çıkan eski yığını işlemek için Gelen isteği eşleştirme bölümüne bakın.