Uygulama bağlantılarını test etme

Uygulama bağlama özelliğini uygularken sistemin uygulamanızı web sitelerinizle ilişkilendirebildiğinden ve URL isteklerini beklediğiniz gibi işleyebildiğinden emin olmak için bağlama işlevini test etmeniz gerekir.

Mevcut bir ekstre dosyasını test etmek için Ekstre Listesi Oluşturucu ve Test Aracı'nı kullanabilirsiniz.

Aşağıdaki bölümlerde, Uygulama Bağlantıları doğrulamanızı manuel olarak nasıl test edeceğiniz açıklanmaktadır. İsterseniz doğrulamayı Play Derin Bağlantılar aracından veya Android Studio App Links Assistant'tan da test edebilirsiniz.

Doğrulanacak ana makinelerin listesini onaylama

Test sırasında, sistemin uygulamanız için doğrulayacağı ilişkili ana makine listesini onaylamanız gerekir. Karşılık gelen amaç filtreleri aşağıdaki özellikleri ve öğeleri içeren tüm URL'lerin bir listesini oluşturun:

  • android:scheme özelliği http veya https değeriyle
  • Alan URL'si kalıbı içeren android:host özelliği
  • android.intent.action.VIEW işlem öğesi
  • android.intent.category.BROWSABLE kategori öğesi

Bu listeyi kullanarak her adlandırılmış ana makinede ve alt alanda bir Digital Asset Links JSON dosyası sağlandığını kontrol edin.

Digital Asset Links dosyalarını onaylama

Her web sitesi için Digital Asset Links API'yi kullanarak Digital Asset Links JSON dosyasının düzgün şekilde barındırıldığını ve tanımlandığını onaylayın:

https://digitalassetlinks.googleapis.com/v1/statements:list?
   source.web.site=https://<var>domain.name</var>:<var>optional_port</var>&amp;
   relation=delegate_permission/common.handle_all_urls

Dinamik uygulama bağlantıları için ilişki uzantılarını da kontrol edebilirsiniz.

https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://www.example.com&relation=delegate_permission/common.handle_all_urls&return_relation_extensions=true

Test sürecinizin bir parçası olarak, bağlantı işleme ile ilgili mevcut sistem ayarlarını kontrol edebilirsiniz. Bağlı cihazınızdaki tüm uygulamalar için mevcut bağlantı işleme politikalarının listesini almak üzere aşağıdaki komutu kullanın:

adb shell dumpsys package domain-preferred-apps

Aşağıdaki komut da aynı işlemi yapar:

adb shell dumpsys package d

Komut, cihazda tanımlanan her kullanıcının veya profilin listesini döndürür. Bu liste, aşağıdaki biçimde bir başlıkla başlar:

App linkages for user 0:

Bu başlığın ardından, çıkışta söz konusu kullanıcının bağlantı işleme ayarlarını listelemek için aşağıdaki biçim kullanılır:

Package: com.android.vending
Domains: play.google.com market.android.com
Status: always : 200000002

Bu listede, söz konusu kullanıcı için hangi uygulamaların hangi alanlarla ilişkilendirildiği gösterilir:

  • Package - Bir uygulamayı, manifest dosyasında belirtildiği şekilde paket adına göre tanımlar.
  • Domains - Bu uygulamanın web bağlantılarını işlediği ana makinelerin tam listesini, sınırlayıcı olarak boşluklar kullanarak gösterir.
  • Status - Bu uygulamanın mevcut bağlantı işleme ayarını gösterir. Doğrulamayı geçmiş ve manifesti android:autoVerify="true" içeren bir uygulamanın durumu always olarak gösterilir. Bu durumdan sonraki onaltılık sayı, Android sisteminin kullanıcının uygulama bağlantısı tercihlerine ilişkin kaydıyla ilgilidir. Bu değer, doğrulamanın başarılı olup olmadığını göstermez.

Test örneği

Uygulama bağlantısı doğrulamasının başarılı olması için sistemin, uygulama bağlantısı ölçütlerini karşılayan belirli bir intent filtresinde belirttiğiniz web sitelerinin her biriyle uygulamanızı doğrulayabilmesi gerekir. Aşağıdaki örnekte, birkaç uygulama bağlantısının tanımlandığı bir manifest yapılandırması gösterilmektedir:

<activity android:name=”MainActivity”>
        <intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="https" />
            <data android:scheme="https" />
            <data android:host="www.example.com" />
            <data android:host="mobile.example.com" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="https" />
            <data android:host="www.example2.com" />
        </intent-filter>
    </activity>

    <activity android:name=”SecondActivity”>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="https" />
            <data android:host="account.example.com" />
        </intent-filter>
    </activity>

      <activity android:name=”ThirdActivity”>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:scheme="https" />
            <data android:host="map.example.com" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="market" />
            <data android:host="example.com" />
        </intent-filter>
      </activity>

</application>

Platformun önceki manifestten doğrulamaya çalışacağı ana makinelerin listesi:

www.example.com
mobile.example.com
www.example2.com
account.example.com

Platformun önceki manifest dosyasından doğrulamaya çalışmayacağı ana makinelerin listesi:

map.example.com (it does not have android.intent.category.BROWSABLE)
market://example.com (it does not have either an "http" or "https" scheme)

Bildirim listeleri hakkında daha fazla bilgi edinmek için Bildirim Listesi Oluşturma başlıklı makaleyi inceleyin.