DeepLinkMatcher örnekleri oluşturma

Gelen DeepLinkRequest örneklerini, uygulamanızın geri yığınına eklenebilecek anahtarlarla eşlemek için DeepLinkMatcher örneklerini 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, matchRequest işlevini uygulamalıdır. Bu işlev, DeepLinkRequest alır ve istek eşleşirse DeepLinkMatcher.MatchResult, aksi takdirde null döndürür.

Tek bir istek birden fazla eşleştiriciyle eşleşebileceğinden MatchResult, sonuçları sıralamak ve en iyi eşleşmeyi seçmek için Comparable uygular.

Tür parametreleri

DeepLinkMatcher sınıfı iki genel tür parametresi bildirir: 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 parametre olan R, uzmanlaşmış eşleşme bilgilerini, tür dönüştürme kontrolü gerektirmeden korur:

Ön filtreleme istekleri

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

Kitaplıkta, yaygın filtreler oluşturmaya yardımcı olacak 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 filtreler 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 koşullarını karşılamıyorsa özel derin bağlantı eşleştiricileri oluşturabilirsiniz.

Çıkarılacak bağımsız değişkenleri olmayan temel derin bağlantılar için, sağlanan tüm filtreleri karşılayan isteklerle eşleşmek üzere StaticKeyDeepLinkMatcher kullanın.

Örneğin, ACTION_APPLICATION_PREFERENCES için niyetleri işlemek üzere:

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

Sentetik bir geri yığın oluşturma

Başarılı bir eşleşmeden nasıl yapay bir eski yığın oluşturulacağını tanımlamak için BackStackMatcher kullanın. BackStackMatcher öğesini doğrudan oluşturmak yerine başka bir DeepLinkMatcher üzerinde withBackStack uzantı işlevini çağırın. withBackStack, alıcıyı BackStackMatcher içine sarar ve yapay bir geri yığın içeren BackStackMatchResult döndürür List. 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 geri yığınıyla ilgili işlem yapmak için Gelen isteği eşleştirme başlıklı makaleyi inceleyin.