เมื่อใช้ฟีเจอร์การลิงก์แอป คุณควรทดสอบฟังก์ชันการลิงก์เพื่อให้แน่ใจว่าระบบสามารถเชื่อมโยงแอปกับเว็บไซต์ของคุณ และจัดการคำขอ URL ได้ตามที่คาดไว้
หากต้องการทดสอบไฟล์ใบแจ้งยอดที่มีอยู่ คุณสามารถใช้เครื่องมือตัวสร้างและเครื่องมือทดสอบรายการใบแจ้งยอด ได้
ส่วนต่อไปนี้อธิบายวิธีทดสอบการยืนยัน App Link ด้วยตนเอง หากต้องการ คุณสามารถทดสอบการยืนยันจากเครื่องมือ Play Deep Link หรือผู้ช่วย App Link ของ Android Studio ได้
ยืนยันรายชื่อโฮสต์ที่จะยืนยัน
เมื่อทดสอบ คุณควรยืนยันรายการโฮสต์ที่เชื่อมโยงซึ่งระบบควรยืนยันสำหรับแอปของคุณ ทำรายการ URL ทั้งหมดซึ่งตัวกรอง Intent ที่เกี่ยวข้องมีแอตทริบิวต์และองค์ประกอบต่อไปนี้
- แอตทริบิวต์
android:scheme
ที่มีค่าเป็นhttp
หรือhttps
android:host
ที่มีรูปแบบ URL ของโดเมน- องค์ประกอบการดำเนินการ
android.intent.action.VIEW
- องค์ประกอบหมวดหมู่
android.intent.category.BROWSABLE
ใช้รายการนี้เพื่อตรวจสอบว่ามีไฟล์ JSON ของลิงก์เนื้อหาดิจิทัล (Digital Asset Links) ในแต่ละโฮสต์และโดเมนย่อยที่ระบุชื่อหรือไม่
ยืนยันไฟล์ลิงก์เนื้อหาดิจิทัล (Digital Asset Links)
สำหรับแต่ละเว็บไซต์ ให้ใช้ Digital Asset Links API เพื่อยืนยันว่าไฟล์ JSON ของ Digital Asset Links ได้รับการโฮสต์และกำหนดอย่างถูกต้อง
https://digitalassetlinks.googleapis.com/v1/statements:list?
source.web.site=https://<var>domain.name</var>:<var>optional_port</var>&
relation=delegate_permission/common.handle_all_urls
สำหรับ Dynamic App Link คุณยังตรวจสอบส่วนขยายความสัมพันธ์ได้ด้วย
https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://www.example.com&relation=delegate_permission/common.handle_all_urls&return_relation_extensions=true
ตรวจสอบนโยบายลิงก์
ในกระบวนการทดสอบ คุณสามารถตรวจสอบการตั้งค่าระบบปัจจุบันสำหรับการจัดการลิงก์ได้ ใช้คำสั่งต่อไปนี้เพื่อดูรายการ นโยบายการจัดการลิงก์ที่มีอยู่สำหรับแอปทั้งหมดในอุปกรณ์ที่เชื่อมต่อ
adb shell dumpsys package domain-preferred-apps
คำสั่งต่อไปนี้จะทำงานเหมือนกัน
adb shell dumpsys package d
คำสั่งจะแสดงรายการผู้ใช้หรือโปรไฟล์แต่ละรายการที่กำหนดไว้ในอุปกรณ์ โดยมีส่วนหัวในรูปแบบต่อไปนี้
App linkages for user 0:
หลังจากส่วนหัวนี้ เอาต์พุตจะใช้รูปแบบต่อไปนี้เพื่อแสดงการตั้งค่าการจัดการลิงก์สำหรับผู้ใช้รายนั้น
Package: com.android.vending
Domains: play.google.com market.android.com
Status: always : 200000002
ข้อมูลนี้จะระบุว่าแอปใดเชื่อมโยงกับโดเมนใดสำหรับผู้ใช้รายนั้น
Package
- ระบุแอปตามชื่อแพ็กเกจที่ประกาศไว้ใน ไฟล์ ManifestDomains
- แสดงรายการโฮสต์ทั้งหมดที่แอปนี้จัดการลิงก์เว็บ โดยใช้ช่องว่างเป็นตัวคั่นStatus
- แสดงการตั้งค่าการจัดการลิงก์ปัจจุบันสำหรับแอปนี้ แอปที่ ผ่านการยืนยันและมีandroid:autoVerify="true"
ในไฟล์ Manifest จะแสดงสถานะเป็นalways
หมายเลขฐานสิบหก หลังจากสถานะนี้เกี่ยวข้องกับบันทึกของระบบ Android เกี่ยวกับ ค่ากำหนดการลิงก์แอปของผู้ใช้ ค่านี้ไม่ได้ระบุว่าการยืนยันสำเร็จหรือไม่
ตัวอย่างการทดสอบ
หากต้องการให้การยืนยัน App Link สำเร็จ ระบบต้องยืนยันแอปของคุณกับเว็บไซต์แต่ละแห่งที่คุณระบุในตัวกรอง Intent ที่กำหนดซึ่งเป็นไปตามเกณฑ์สำหรับ App Link ได้ ตัวอย่างต่อไปนี้แสดงการกำหนดค่าไฟล์ Manifest ที่มี App Link หลายรายการที่กำหนดไว้
<activity android:name=”MainActivity”>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
<data android:scheme="https" />
<data android:host="www.example.com" />
<data android:host="mobile.example.com" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
<data android:host="www.example2.com" />
</intent-filter>
</activity>
<activity android:name=”SecondActivity”>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
<data android:host="account.example.com" />
</intent-filter>
</activity>
<activity android:name=”ThirdActivity”>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="https" />
<data android:host="map.example.com" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="market" />
<data android:host="example.com" />
</intent-filter>
</activity>
</application>
รายชื่อโฮสต์ที่แพลตฟอร์มจะพยายามยืนยันจากไฟล์ Manifest ก่อนหน้ามีดังนี้
www.example.com
mobile.example.com
www.example2.com
account.example.com
รายชื่อโฮสต์ที่แพลตฟอร์มจะไม่พยายามยืนยันจาก ไฟล์ Manifest ก่อนหน้ามีดังนี้
map.example.com (it does not have android.intent.category.BROWSABLE)
market://example.com (it does not have either an "http" or "https" scheme)
ดูข้อมูลเพิ่มเติมเกี่ยวกับรายการใบแจ้งหนี้ได้ที่การสร้างรายการใบแจ้งหนี้