Ekstre Listesi Oluşturma

Açıklamalar, Öğe Bağlantıları Spesifikasyonu'nda tanımlandığı üzere, ana öğedeki iyi bilinen bir konumda JSON olarak kodlanmış bir ifade listesinde barındırılır. Bir ifade listesinde bir veya daha fazla ifade vardır ve bir ana hesabın yalnızca bir ifade listesi olabilir.

Açıklama listesi söz dizimi

Açıklama listesi söz dizimine bakın.

Ekstre listesi konumu

Hesap özeti listesi, ana hesabın türüne (ifadeleri veren web sitesi veya uygulama) bağlı olarak iyi bilinen bir konumda barındırılır.

Web sitesi ifadesi listeleri

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 noktayı not edin.

HTTP 200 dışında sunucudan gelen tüm yanıtlar hata olarak değerlendirilir ve boş ifade listesi oluşturur. HTTPS için, güvenilir kök listeyle doğrulanabilen sertifika zinciri olmayan tüm bağlantılar da boş bir ifade listesine yol açar.

Örnek

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

Android uygulama ifadesi listeleri

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

AndroidManifest.xml'de:

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

res/values/strings.xml dosyasında:

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

Örnek

Aşağıda, uygulamayla konum paylaşımını destekleyen bir Android uygulaması için res/values/strings.xml snippet örneği gösterilmektedir (şu anda desteklenmeyen bir Android özelliği):

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

Bir hedefle eşleştirme

Her ifade bir hedefle ilgilidir. Bir ifadeyi kullandığınızda, bir ifadedeki hedefi gerçekte bazı öğelerle eşleştirmeniz gerekir. İfade hedefi öğeyle eşleşirse ifade uygulanır. Bir hedefin belirli bir öğeyle eşleşip eşleşmediğini belirleme kuralları aşağıda verilmiştir:

Web sitesi hedefleri

Web siteleri 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) dolaylı olarak kabul edilir. Bir ifade hedefi http://www.example.com:80'i tanımlıyorsa http://www.example.com web sitesi bir eşleşme olarak değerlendirilir.

Örnek

Aşağıdaki ifade hedefi göz önünde bulundurulduğunda

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

Aşağıdaki URI'ler Eşleşen:

  • 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://kullanici@sifre: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.