ایجاد لیست بیانیه

بیانیه ها در یک لیست بیانیه کدگذاری شده با JSON در یک مکان شناخته شده در یک اصل میزبانی می شوند، همانطور که توسط Asset Links Specification تعریف شده است. یک لیست عبارات حاوی یک یا چند عبارت است و یک اصل می تواند تنها یک لیست بیانیه داشته باشد.

نحو فهرست بیانیه

دستور فهرست بیانیه را ببینید .

مکان لیست بیانیه

لیست بیانیه در یک مکان شناخته شده میزبانی می شود که بستگی به نوع مدیر (وب سایت یا برنامه ای که بیانیه ها را ارائه می دهد) دارد.

لیست های بیانیه وب سایت

در یک وب سایت، لیست بیانیه یک فایل متنی است که در آدرس زیر قرار دارد:

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

به نقطه در نام پوشه .well-known توجه کنید.

هر پاسخی از سرور علاوه بر HTTP 200 به عنوان یک خطا تلقی می شود و منجر به یک لیست خالی می شود. برای HTTPS، هر اتصال بدون زنجیره گواهی که می تواند با لیست ریشه قابل اعتماد تأیید شود، منجر به یک لیست دستور خالی نیز می شود.

مثال

در اینجا یک لیست نمونه بیانیه در یک وب سایت آمده است: http://example.digitalassetlinks.org/.well-known/assetlinks.json

لیست بیانیه برنامه اندروید

در یک برنامه اندروید، فهرست بیانیه یک قطعه JSON با نحو مشابه فایل بیانیه وب‌سایت است، اما در فایل strings.xml جاسازی شده و همانطور که در ادامه نشان داده شده است در مانیفست ارجاع داده می‌شود.

در AndroidManifest.xml:

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

در res/values/strings.xml:

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

مثال

در اینجا یک نمونه قطعه res/values/strings.xml برای یک برنامه Android است که از اشتراک‌گذاری موقعیت مکانی با برنامه پشتیبانی می‌کند (یک ویژگی Android در حال حاضر پشتیبانی نمی‌شود):

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

مطابقت با یک هدف

هر جمله در مورد یک هدف است. هنگامی که یک بیانیه را مصرف می کنید، باید هدف را در یک بیانیه در برابر یک موجودیت واقعی مطابقت دهید. اگر هدف بیانیه با موجودیت مطابقت داشته باشد، بیانیه اعمال می شود. در اینجا قوانینی برای تعیین اینکه آیا یک هدف با یک موجودیت معین مطابقت دارد یا خیر وجود دارد:

اهداف وب سایت

برای یک وب سایت، طرح سایت، میزبان و پورت باید دقیقاً مطابقت داشته باشند. پورت های پیش فرض برای HTTP و HTTPS (به ترتیب 80 و 443) به طور ضمنی در نظر گرفته شده اند. اگر هدف عبارت http://www.example.com:80 را توصیف کند، وب سایت http://www.example.com مطابقت در نظر گرفته می شود.

مثال

با توجه به عبارت زیر target

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

URI های زیر مطابقت خواهند داشت:

  • 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/

URL های زیر مطابقت ندارند:

  • http://www.google.com/ ( طرح اشتباه )
  • https://google.com/ ( نام میزبان مطابقت ندارد )
  • https://www.google.com:444/ ( پورت مطابقت ندارد )

اهداف برنامه

برای یک برنامه، هش گواهی و نام بسته هدف باید دقیقاً با برنامه مطابقت داشته باشد.