İfade Listesi Oluşturma

İfadeler, Öğe Bağlantıları Spesifikasyonu ile tanımlanan ana hesap üzerinde iyi bilinen bir konumda yer alan JSON kodlu bir ifade listesinde barındırılır. Bir ifade listesi bir veya daha fazla ifade içerir ve ana hesabın yalnızca bir ifade listesi olabilir.

İfade listesi söz dizimi

İfade listesi söz dizimine bakın.

Ekstre listesi konumu

İfade listesi, ana hesabın türüne (açıklamaları yapan web sitesi veya uygulama) bağlı olarak iyi bilinen bir konumda barındırılır.

Web sitesi ekstresi listeleri

Bir web sitesinde ifade listesi, aşağıdaki adreste bulunan bir metin dosyasıdır:

scheme://domain/.well-known/assetlinks.json

.well-known klasör adındaki noktaya dikkat edin.

HTTP 200 dışında sunucudan gelen tüm yanıtlar hata olarak değerlendirilir ve boş bir ifade listesiyle sonuçlanır. HTTPS söz konusu olduğunda, güvenilir kök listesiyle doğrulanabilen sertifika zinciri olmayan tüm bağlantılar da boş ifade listesiyle sonuçlanır.

Örnek

Bir web sitesindeki örnek ifade listesi: http://example.digitalassetlinks.org/.well-known/assetlinks.json

Android uygulama açıklaması listeleri

Bir Android uygulamasında ifade listesi, web sitesi ifade dosyasıyla aynı söz dizimine sahip bir JSON snippet'idir, ancak dizeler.xml dosyasına yerleştirilir ve aşağıda gösterildiği gibi manifestte referans verilir.

AndroidManifest.xml dosyasında:

<manifest>
  <application>
    ...
    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    ...
  </application>
</manifest>

res/values/strings.xml içinde:

<resources>
  ...
  <string name="asset_statements">
    ... statement list ...
  </string>
</resources>

Örnek

Uygulamayla konum paylaşımını destekleyen bir Android uygulamasına (şu anda desteklenmeyen bir Android özelliği) ilişkin bir res/values/strings.xml snippet'i örneğini burada bulabilirsiniz:

<resources>
    ...
    <string name="asset_statements">
      [{
        \"relation\": [\"delegate_permission/common.share_location\"],
        \"target\": {
          \"namespace\": \"web\",
          \"site\": \"https://example.com\"
        }
      }]
    </string>
</resources>

Bir hedefle eşleşiyor

Her ifade bir hedefle ilgilidir. Bir ifadeyi kullanırken, ifadedeki hedefi gerçekte bir varlıkla eşleştirmeniz gerekir. İfade hedefi varlıkla eşleşiyorsa ifade geçerli olur. Bir hedefin belirli bir öğeyle eşleşip eşleşmediğini belirlemeye ilişkin kurallar şunlardır:

Web sitesi hedefleri

Bir web sitesi için site şeması, ana makine ve bağlantı noktası tam olarak eşleşmelidir. HTTP ve HTTPS için varsayılan bağlantı noktaları (sırasıyla 80 ve 443) örtülü olarak kabul edilir. Bir ifade hedefi http://www.example.com:80'i anlatıyorsa http://www.example.com web sitesi bir eşleşme olarak kabul edilir.

Örnek

Aşağıdaki ifade hedefi göz önüne alındığında,

"target": {
  "namespace": "web",
  "site": "https://www.google.com"
}

Aşağıdaki URI'ler eşleşecektir :

  • https://www.google.com/
  • https://www.google.com:443/
  • https://www.google.com/foo
  • https://www.google.com/foo?bar
  • https://www.google.com/foo#bar
  • https://user@password:www.google.com/

Aşağıdaki URL'ler EŞLEŞMEZ:

  • http://www.google.com/ (Yanlış şema)
  • https://google.com/ (Ana makine adı eşleşmiyor)
  • https://www.google.com:444/ (Bağlantı noktası eşleşmiyor)

Uygulama hedefleri

Bir uygulama için hedefin sertifika karması ve paket adı, uygulamayla tam olarak eşleşmelidir.