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

لیست بیانیه یک فایل یا قطعه کد شده با JSON در یک مکان شناخته شده است.

برای اینکه بدانید این لیست باید در کجا ذخیره شود، به ایجاد فهرست بیانیه مراجعه کنید.

لیست بیانیه یا قطعه شامل یک آرایه JSON از یک یا چند بیانیه وب سایت یا برنامه به عنوان اشیاء JSON است. این اظهارات می توانند به هر ترتیبی باشند. در اینجا نحو کلی آمده است:

[
  {
    "relation": ["relation_string"],
    "target": {target_object}
  } , ...
]
رابطه
آرایه ای از یک یا چند رشته که رابطه اعلان شده در مورد هدف را توصیف می کند. لیست رشته های رابطه تعریف شده را ببینید. مثال: delegate_permission/common.handle_all_urls
هدف
دارایی هدف که این بیانیه در مورد آن اعمال می شود. انواع هدف موجود:
  • "target": {
      "namespace": "web",
      "site": "site_root_url"
    }
    فضای نام
    باید برای وب سایت ها web باشد.
    سایت
    URI سایتی که هدف عبارت است، در قالب http[s]://< hostname >[:< port >] ، که در آن <hostname> کاملاً واجد شرایط است، و <port> باید هنگام استفاده حذف شود پورت 80 برای HTTP یا پورت 443 برای HTTPS. یک وب سایت هدف فقط می تواند یک دامنه ریشه باشد. شما نمی توانید به یک زیر شاخه خاص محدود کنید. همه دایرکتوری های زیر این ریشه مطابقت دارند. زیردامنه ها را نباید منطبق دانست: یعنی اگر فایل بیانیه در www.example.com میزبانی می شود، آنگاه www.puppies.example.com نباید مطابقت در نظر گرفته شود. برای قوانین و مثال‌هایی درباره تطبیق هدف وب‌سایت، به مستندات اهداف مراجعه کنید. مثال: http://www.example.com
  • "target": {
      "namespace": "android_app",
      "package_name": "fully_qualified_package_name",
      "sha256_cert_fingerprints": ["cert_fingerprint"]
    }
    فضای نام
    باید android_app برای برنامه‌های اندروید باشد.
    بسته_نام
    نام بسته کاملاً واجد شرایط برنامه که این عبارت برای آن اعمال می شود. مثال: com.google.android.apps.maps
    sha256_cert_prints
    اثر انگشت بزرگ SHA265 گواهی برای برنامه ای که این عبارت برای آن اعمال می شود. همانطور که در اینجا نشان داده شده است، می توانید این را با استفاده از openssl یا keytool جاوا محاسبه کنید:
    • openssl x509 -in $CERTFILE -noout -fingerprint -sha256
    • keytool -printcert -file $CERTFILE | grep SHA256
    مثال: ["14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:16:A0:83:42:E6:1D:BE:A8:8A:04:96:B2:3F:CF:44:E5"] .

    اگر از Play App Signing برای برنامه خود استفاده می‌کنید، اثر انگشت گواهی که با اجرای keytool یا openssl به صورت محلی تولید می‌شود معمولاً با دستگاه‌های کاربران مطابقت ندارد. می‌توانید تأیید کنید که آیا از Play App Signing برای برنامه خود در حساب برنامه‌نویس Play Console خود در Release > Setup > App Integrity استفاده می‌کنید. اگر این کار را انجام دهید، قطعه JSON پیوند دارایی دیجیتال صحیح را نیز در همان صفحه برای برنامه خود خواهید یافت.

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

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

مقیاس دهی به ده ها عبارت یا بیشتر

در برخی موارد، یک مدیر ممکن است بخواهد اظهارات مختلفی در مورد اهداف مختلف بیان کند، یا ممکن است نیاز به صدور بیانیه هایی از مدیران مختلف برای یک مجموعه از اهداف باشد. برای مثال، یک وب‌سایت ممکن است در دامنه‌های سطح بالای مختلف در هر کشور در دسترس باشد، و همه آنها ممکن است بخواهند در مورد یک برنامه تلفن همراه اظهار نظر کنند.

برای این مواقع، شامل کردن عبارات می تواند مفید باشد. با استفاده از این مکانیسم، می‌توانید نشانگرها را از بسیاری از اصلی‌های مختلف در یک مکان مرکزی تنظیم کنید، که دستورات را برای همه اصلی‌ها تعریف می‌کند.

برای مثال، ممکن است تصمیم بگیرید که مکان مرکزی «https://example.com/includedstatements.json» باشد. این فایل را می توان طوری پیکربندی کرد که حاوی همان محتوای مثال های بالا باشد.

برای تنظیم یک اشاره گر از یک وب سایت به فایل شامل، «https://example.com/.well-known/assetlinks.json» را به:

[{
  "include": "https://example.com/includedstatements.json"
}]

برای تنظیم یک اشاره گر از یک برنامه Android به فایل شامل، «res/values/strings.xml» را به:

<resources>
  ...
  <string name="asset_statements">
    [{
      \"include\": \"https://example.com/includedstatements.json\"
    }]
  </string>
</resources>

اطلاعات بیشتر

توضیح دقیق تری از قالب لیست بیانیه و مفاهیم اساسی در سند مشخصات ما وجود دارد.