ภาพรวม
โปรโตคอลลิงก์เนื้อหาดิจิทัล (Digital Asset Links) และ API จะช่วยให้แอปหรือเว็บไซต์เผยแพร่ข้อความเกี่ยวกับแอปหรือเว็บไซต์อื่นๆ แบบสาธารณะและยืนยันได้ เช่น เว็บไซต์อาจประกาศว่าเชื่อมโยงกับแอป Android ที่เจาะจง หรือประกาศว่าต้องการแชร์ข้อมูลเข้าสู่ระบบของผู้ใช้กับเว็บไซต์อื่น
ตัวอย่างการใช้งานลิงก์เนื้อหาดิจิทัล (Digital Asset Links) ต่อไปนี้
- เว็บไซต์ ก ประกาศว่าลิงก์ไปยังเว็บไซต์ควรเปิดในแอปที่กำหนดบนอุปกรณ์เคลื่อนที่ (หากติดตั้งแอปไว้)
- เว็บไซต์ ก ประกาศว่าสามารถแชร์ข้อมูลเข้าสู่ระบบของผู้ใช้ Chrome กับเว็บไซต์ ข เพื่อให้ผู้ใช้ไม่ต้องเข้าสู่ระบบเว็บไซต์ ข หากเข้าสู่ระบบเว็บไซต์ ก
- แอป ก ประกาศว่าสามารถแชร์การตั้งค่าอุปกรณ์ เช่น ตำแหน่ง กับเว็บไซต์ ข ได้
คำสำคัญ
- ผู้ใช้หลัก: ผู้ใช้หลักคือแอปหรือเว็บไซต์ที่แถลงข้อความ ในลิงก์เนื้อหาดิจิทัล ผู้ใช้หลักจะเป็นแอปหรือเว็บไซต์ที่โฮสต์รายการใบแจ้งยอดเสมอ
- รายการใบแจ้งยอด: คำสั่งจะอยู่ในรายการคำสั่งที่มีคำสั่งอย่างน้อย 1 รายการ รายการข้อความเป็นข้อความที่ชัดเจนและเข้าถึงได้แบบสาธารณะ ในสถานที่ที่มีการควบคุมโดยครูใหญ่และปลอมแปลงหรือดัดแปลงได้ยาก ซึ่งอาจเป็นไฟล์แบบลอยตัวหรือส่วนหนึ่งของไฟล์อื่นที่มีขนาดใหญ่กว่า เช่น ในเว็บไซต์จะเป็นทั้งไฟล์ แต่ในแอป Android จะอยู่ในส่วนในไฟล์ Manifest ของแอป ทุกคนสามารถดูและยืนยันใบแจ้งยอดได้ โดยใช้วิธีการที่ไม่ใช่กรรมสิทธิ์ ดูข้อมูลเพิ่มเติมในเอกสารรายการใบแจ้งยอด
- คำสั่ง: คำสั่งคือโครงสร้าง JSON ที่มีโครงสร้างแบบกระชับซึ่งประกอบด้วยrelation (สิ่งที่คำสั่งระบุไว้ว่าต้องทำ เช่น เปิดใช้ข้อมูลเข้าสู่ระบบการแชร์) และrelation (เว็บไซต์หรือแอปที่เกี่ยวข้องด้วย) ดังนั้น แต่ละข้อความจึงมีลักษณะเหมือนประโยคที่ ผู้หลัก เขียนคำว่า relation เกี่ยวกับ target
- ผู้บริโภคที่ใช้ใบแจ้งยอด: ผู้บริโภคตามใบแจ้งยอดจะขอรายการใบแจ้งยอดจากผู้ใช้หลัก ตรวจสอบว่ามีข้อความใดเกี่ยวกับผู้ใช้หลักรายหนึ่งๆ หรือไม่ และดำเนินการตามที่ระบุไว้ได้ หากมี ดูข้อมูลเพิ่มเติมในคำชี้แจงเกี่ยวกับเอกสารประกอบ.
ตัวอย่างการใช้งานอย่างรวดเร็ว
ต่อไปนี้เป็นตัวอย่างง่ายๆ เกี่ยวกับวิธีที่เว็บไซต์ www.example.com ใช้ลิงก์เนื้อหาดิจิทัลเพื่อระบุว่าลิงก์ไปยัง 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 ที่ระบุรูปแบบ โฮสต์ และรูปแบบเส้นทางของ URL ที่ต้องการจัดการ ในกรณีนี้คือ https://www.example.com ตัวกรอง Intent
มีแอตทริบิวต์พิเศษ
android:autoVerify
ซึ่งเป็นแอตทริบิวต์ใหม่ที่เป็น Android M ซึ่งบ่งชี้ว่า Android ควรยืนยันคำสั่ง ในเว็บไซต์ที่อธิบายไว้ในตัวกรอง Intent เมื่อติดตั้งแอป - ผู้ใช้ติดตั้งแอป Android จะเห็นตัวกรอง Intent ที่มีแอตทริบิวต์
autoVerify
และตรวจสอบว่ามีรายการคำสั่งในเว็บไซต์ที่ระบุหรือไม่ หากมี Android จะตรวจสอบว่าไฟล์ดังกล่าวมีคำสั่งที่ให้สิทธิ์จัดการลิงก์กับแอปหรือไม่ และยืนยันแอปกับคำสั่งตามแฮชใบรับรอง หากทุกอย่างได้รับการตรวจสอบ Android จะส่งต่อ https://www.example.com Intent ใดๆ ไปยังแอป example.com - ผู้ใช้คลิกลิงก์ไปยัง https://www.example.com/puppie บนอุปกรณ์ของตน ลิงก์นี้อาจเป็นที่ใดก็ได้ ไม่ว่าจะเป็นในเบราว์เซอร์ ในคำแนะนำของ Google Search Appliance หรือที่อื่นๆ Android ส่งต่อ Intent ไปยังแอป example.com
- แอป example.com ได้รับ Intent และเลือกที่จะจัดการ โดยเปิดหน้าเกี่ยวกับลูกสุนัขในแอป หากแอปปฏิเสธที่จะจัดการลิงก์ด้วยเหตุผลบางประการ หรือในกรณีที่แอปไม่ได้อยู่ในอุปกรณ์ ระบบจะส่งลิงก์ไปที่เครื่องจัดการความตั้งใจเริ่มต้นถัดไปที่ตรงกับรูปแบบ Intent นั้น (มักจะเป็นเบราว์เซอร์)
ข้อควรพิจารณาและข้อจำกัดที่สำคัญ
- โปรโตคอลไม่ได้ตรวจสอบสิทธิ์ผู้ใช้หลักที่เป็นผู้รายงาน แต่ข้อความดังกล่าวอยู่ในตำแหน่งที่ตั้งเฉพาะที่เกี่ยวข้องกับผู้ใช้หลักอย่างยิ่ง และอยู่ภายใต้การควบคุมของผู้หลัก
- โปรโตคอลไม่ได้ตรวจสอบสิทธิ์เป้าหมายของคำสั่ง แต่จะระบุวิธีการให้ผู้โทรตรวจสอบสิทธิ์เป้าหมาย (เช่น คำสั่งระบุเป้าหมายแอปบนอุปกรณ์เคลื่อนที่ตามแฮชใบรับรองและชื่อแพ็กเกจ)
- โปรโตคอลไม่ได้ดำเนินการใดๆ กับข้อความตั้งแต่ต้น แต่จะช่วยให้แสดงคำสั่งได้ ซึ่งแอปพลิเคชันที่ใช้งานจะต้องตรวจสอบความถูกต้อง จากนั้นตัดสินใจว่าจะดำเนินการอย่างไรและต่อไปอย่างไร Android M จะดำเนินการขั้นตอนเหล่านี้ให้คุณตั้งแต่แรก ตัวอย่างเช่น หากเว็บไซต์มอบสิทธิ์ในการจัดการลิงก์ให้กับแอปใดแอปหนึ่ง Android จะตรวจสอบและยืนยันคำสั่ง ยืนยันแอปเป้าหมาย จากนั้นจึงเสนอตัวเลือกให้แอปจัดการลิงก์ดังกล่าว
- โปรโตคอลไม่อนุญาตให้ระบุข้อมูลเกี่ยวกับบุคคลที่สาม 2 ราย กล่าวคือ เว็บไซต์ ก. สามารถกล่าวถึงเว็บไซต์ ข. แต่เว็บไซต์ ก. แสดงความคิดเห็นเกี่ยวกับความสัมพันธ์ของเว็บไซต์ ข. กับเว็บไซต์ ค ไม่ได้ อย่างไรก็ตาม หากเว็บไซต์ ข เชื่อถือเว็บไซต์ ก ก็จะตรวจสอบเว็บไซต์ ก เพื่อดูคำชี้แจงที่ให้สิทธิ์แก่เว็บไซต์ ค และตัดสินใจนำเว็บไซต์นั้นไปใช้