การสร้างรายการใบแจ้งยอด

คำสั่งจะโฮสต์ในรายการคำสั่งที่เข้ารหัสด้วย JSON ในตำแหน่งที่รู้จักกันดีในตำแหน่งหลัก ตามที่กำหนดโดยข้อกำหนดลิงก์เนื้อหา รายการใบแจ้งยอดจะมีใบแจ้งยอด 1 รายการขึ้นไป และผู้ใช้หลักจะมีรายการคำสั่งได้เพียงรายการเดียว

ไวยากรณ์ของรายการใบแจ้งยอด

ดูไวยากรณ์ของรายการคำสั่ง

ตำแหน่งของรายการใบแจ้งยอด

รายการใบแจ้งยอดจะอยู่ในตำแหน่งที่รู้จักกันดี ซึ่งขึ้นอยู่กับประเภทของผู้ใช้หลัก (เว็บไซต์หรือแอปที่ใช้คำชี้แจง)

รายการคำชี้แจงของเว็บไซต์

ในเว็บไซต์ รายการใบแจ้งยอดคือไฟล์ข้อความตามที่อยู่ต่อไปนี้

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

จดจุดไว้ในชื่อโฟลเดอร์ .well-known

การตอบกลับทั้งหมดจากเซิร์ฟเวอร์นอกเหนือจาก HTTP 200 จะถือว่าเป็นข้อผิดพลาด และจะทำให้รายการคำสั่งว่างเปล่า สำหรับ HTTPS การเชื่อมต่อที่ไม่มีเชนใบรับรองซึ่งยืนยันได้ด้วยรายการรูทที่เชื่อถือได้จะทำให้รายการคำสั่งว่างเปล่าด้วย

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่างรายการคำสั่งในเว็บไซต์ http://example.digitalassetlinks.org/.well-known/assetlinks.json

รายการคำชี้แจงของแอป Android

ในแอป Android รายการคำสั่งคือข้อมูลโค้ด JSON ที่มีไวยากรณ์เดียวกันกับไฟล์คำสั่งของเว็บไซต์ แต่จะฝังอยู่ในไฟล์ string.xml และมีการอ้างอิงในไฟล์ Manifest ดังที่แสดงในลำดับถัดไป

ใน 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": {   "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/ (พอร์ตไม่ตรงกัน)

เป้าหมายของแอป

สําหรับแอป แฮชใบรับรองและชื่อแพ็กเกจของเป้าหมายต้องตรงกับแอปพลิเคชันทุกประการ