ภาพรวม
โปรโตคอลและ API ของ Digital Asset Links ช่วยให้แอปหรือเว็บไซต์สามารถสร้างคำสั่งที่ตรวจสอบได้แบบสาธารณะเกี่ยวกับแอปหรือเว็บไซต์อื่นๆ ตัวอย่างเช่น เว็บไซต์ สามารถประกาศว่าเชื่อมโยงกับแอป Android ที่เฉพาะเจาะจง หรือประกาศว่า ต้องการแชร์ข้อมูลเข้าสู่ระบบของผู้ใช้กับเว็บไซต์อื่น
ตัวอย่างการใช้งานลิงก์เนื้อหาดิจิทัลมีดังนี้
- เว็บไซต์ ก ประกาศว่าลิงก์ไปยังเว็บไซต์ของตนควรเปิดในแอปที่กำหนดบน อุปกรณ์เคลื่อนที่ หากมีการติดตั้งแอป
- เว็บไซต์ ก. ประกาศว่าสามารถแชร์ข้อมูลเข้าสู่ระบบของผู้ใช้ Chrome กับเว็บไซต์ ข. เพื่อให้ผู้ใช้ไม่ต้องเข้าสู่ระบบเว็บไซต์ ข. หากเข้าสู่ระบบเว็บไซต์ ก. อยู่
- แอป ก ประกาศว่าสามารถแชร์การตั้งค่าอุปกรณ์ เช่น ตำแหน่ง กับเว็บไซต์ ข ได้
คำสำคัญ
- ผู้รับรอง: ผู้รับรองคือแอปหรือเว็บไซต์ที่ออกคำชี้แจง ในลิงก์เนื้อหาดิจิทัล หลักการคือแอปหรือเว็บไซต์ที่โฮสต์รายการคำสั่งเสมอ
- รายการใบแจ้งหนี้: ใบแจ้งหนี้จะอยู่ในรายการใบแจ้งหนี้ที่มีใบแจ้งหนี้อย่างน้อย 1 รายการ รายการคำสั่งเป็นข้อความธรรมดาและเข้าถึงได้แบบสาธารณะในตำแหน่ง ที่ผู้ใช้หลักควบคุมและยากต่อการปลอมแปลงหรือดัดแปลง โดยอาจเป็นไฟล์แบบสแตนด์อโลนหรือเป็นส่วนหนึ่งของรายการอื่นที่ใหญ่กว่าก็ได้ เช่น ในเว็บไซต์จะเป็นทั้งไฟล์ ส่วนในแอป Android จะเป็นส่วนในไฟล์ Manifest ของแอป ทุกคนสามารถดูและยืนยันข้อความได้โดยใช้วิธีการที่ไม่ใช่กรรมสิทธิ์ ดูข้อมูลเพิ่มเติมในเอกสารประกอบรายการคำสั่ง
- คำสั่ง: คำสั่งคือโครงสร้าง JSON ที่มีโครงสร้างที่แน่นหนาซึ่งประกอบด้วยความสัมพันธ์ (สิ่งที่คำสั่งบอกให้ทำ เช่น เปิดใช้การแชร์ข้อมูลเข้าสู่ระบบ) และเป้าหมาย (เว็บไซต์หรือแอปที่ความสัมพันธ์มีผล) ดังนั้น แต่ละคำสั่งจึงเหมือนประโยคที่หลักกล่าวถึงความสัมพันธ์เกี่ยวกับเป้าหมาย
- ผู้ใช้ข้อความ: ผู้ใช้ข้อความจะขอรายการข้อความจากผู้รับมอบอำนาจ ตรวจสอบว่ามีข้อความเทียบกับผู้รับมอบอำนาจที่ระบุหรือไม่ และหากมี ก็จะดำเนินการที่ระบุได้ ดูข้อมูลเพิ่มเติมในเอกสารประกอบเกี่ยวกับการใช้ใบแจ้งยอด
ตัวอย่างการใช้งานอย่างรวดเร็ว
ต่อไปนี้เป็นตัวอย่างที่ง่ายมากเกี่ยวกับวิธีที่เว็บไซต์ www.example.com ใช้ Digital Asset Links เพื่อระบุว่าลิงก์ใดๆ ไปยัง URL ในเว็บไซต์นั้นควรเปิดในแอปที่กำหนดแทนที่จะเป็นเบราว์เซอร์
- เว็บไซต์ www.example.com เผยแพร่รายการคำสั่งที่
https://www.example.com/.well-known/assetlinks.json นี่คือชื่อและตำแหน่งอย่างเป็นทางการของรายการคำชี้แจงในเว็บไซต์ รายการคำชี้แจงในตำแหน่งอื่นๆ หรือที่มีชื่ออื่นจะไม่ถูกต้องสำหรับเว็บไซต์นี้ ใน
ตัวอย่างของเรา รายการคำสั่งประกอบด้วยคำสั่งเดียว ซึ่งให้สิทธิ์แอป Android
ในการเปิดลิงก์ในเว็บไซต์ของตนเอง
รายการคำสั่งรองรับอาร์เรย์ของคำสั่งภายในเครื่องหมาย [ ] แต่ ไฟล์ตัวอย่างของเรามีคำสั่งเพียงรายการเดียว[{ "relation": ["delegate_permission/common.handle_all_urls"], "target" : { "namespace": "android_app", "package_name": "com.example.app", "sha256_cert_fingerprints": ["hash_of_app_certificate"] } }]
sha256_cert_fingerprints
คือลายนิ้วมือ SHA256 ของใบรับรองการลงนามของแอป ดูรายละเอียดเพิ่มเติมได้ในเอกสารประกอบเกี่ยวกับ Android App Link - แอป Android ที่ระบุไว้ในคำสั่งข้างต้นมีตัวกรอง Intent
ที่ระบุรูปแบบของ Scheme, โฮสต์ และเส้นทางของ URL ที่ต้องการ
จัดการ ในกรณีนี้คือ https://www.example.com ตัวกรอง Intent
มีแอตทริบิวต์พิเศษ
android:autoVerify
ซึ่งเป็นแอตทริบิวต์ใหม่ใน Android M ซึ่งระบุว่า Android ควรยืนยันคำสั่ง ในเว็บไซต์ที่อธิบายไว้ในตัวกรอง Intent เมื่อติดตั้งแอป - ผู้ใช้ติดตั้งแอป Android จะเห็นตัวกรอง Intent ที่มีแอตทริบิวต์
autoVerify
และตรวจสอบว่ามีรายการคำสั่ง ในเว็บไซต์ที่ระบุหรือไม่ หากมี Android จะตรวจสอบ ว่าไฟล์นั้นมีคำสั่งที่ให้สิทธิ์แอปในการจัดการลิงก์หรือไม่ และยืนยันแอปกับคำสั่งโดยใช้แฮชใบรับรอง หากทุกอย่างเรียบร้อยดี Android จะส่งต่อ Intent ของ https://www.example.com ไปยังแอป example.com - ผู้ใช้คลิกลิงก์ไปยัง https://www.example.com/puppies ในอุปกรณ์ของตน ลิงก์นี้อาจอยู่ที่ใดก็ได้ เช่น ในเบราว์เซอร์ ในคำแนะนำของ Google Search Appliance หรือที่อื่นๆ Android จะส่งต่อ Intent ไปยังแอป example.com
- แอป example.com จะรับ Intent และเลือกที่จะจัดการ Intent นั้นโดยเปิดหน้าลูกสุนัขในแอป หากแอปปฏิเสธที่จะจัดการลิงก์ด้วยเหตุผลบางประการ หรือหากแอปไม่ได้อยู่ในอุปกรณ์ ระบบจะส่งลิงก์ไปยังตัวแฮนเดิล Intent เริ่มต้นถัดไปที่ตรงกับรูปแบบ Intent นั้น (มักจะเป็นเบราว์เซอร์)
ข้อควรพิจารณาและข้อจำกัดที่สำคัญ
- โปรโตคอลไม่ได้ตรวจสอบสิทธิ์ของหลักการที่สร้าง คำสั่ง แต่คำสั่งจะอยู่ในตำแหน่งที่เฉพาะเจาะจง ซึ่งเชื่อมโยงกับหลักการอย่างแน่นแฟ้น และอยู่ภายใต้การควบคุมของหลักการ
- โปรโตคอลไม่ได้ตรวจสอบสิทธิ์เป้าหมายของคำสั่ง แต่มีวิธีให้ผู้โทรตรวจสอบสิทธิ์เป้าหมาย (เช่น คำสั่งระบุเป้าหมายแอปบนอุปกรณ์เคลื่อนที่ โดยใช้แฮชใบรับรองและชื่อแพ็กเกจ)
- โปรโตคอลไม่ได้ดำเนินการใดๆ กับคำสั่งโดยตรง แต่จะช่วยให้สามารถแสดงคำสั่ง ซึ่งแอปพลิเคชันที่ใช้ ต้องตรวจสอบและตัดสินใจว่าจะดำเนินการหรือไม่และ จะดำเนินการอย่างไร Android M จะดำเนินการตามขั้นตอนเหล่านี้ให้คุณโดยอัตโนมัติ เช่น หากเว็บไซต์มอบสิทธิ์การจัดการลิงก์ให้กับแอปหนึ่งๆ Android จะตรวจสอบและยืนยันข้อความ ยืนยันแอปเป้าหมาย แล้วเสนอตัวเลือกให้แอปจัดการลิงก์ที่ระบุ
- โปรโตคอลนี้ไม่อนุญาตให้ระบุข้อความเกี่ยวกับบุคคลที่สาม 2 ราย กล่าวคือ เว็บไซต์ ก สามารถระบุข้อความเกี่ยวกับเว็บไซต์ ข ได้ แต่เว็บไซต์ ก ไม่สามารถระบุข้อความเกี่ยวกับความสัมพันธ์ของเว็บไซต์ ข กับเว็บไซต์ ค ได้ อย่างไรก็ตาม หากเว็บไซต์ ข. เชื่อถือเว็บไซต์ ก. ก็สามารถตรวจสอบ เว็บไซต์ ก. เพื่อดูข้อความที่ให้สิทธิ์แก่เว็บไซต์ ค. และตัดสินใจที่จะใช้ข้อความดังกล่าวได้