ทดสอบ App Link

เมื่อใช้ฟีเจอร์การลิงก์แอป คุณควรทดสอบฟังก์ชันการลิงก์เพื่อให้แน่ใจว่าระบบสามารถเชื่อมโยงแอปกับเว็บไซต์ของคุณ และจัดการคำขอ 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>&amp;
   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 - ระบุแอปตามชื่อแพ็กเกจที่ประกาศไว้ใน ไฟล์ Manifest
  • Domains - แสดงรายการโฮสต์ทั้งหมดที่แอปนี้จัดการลิงก์เว็บ โดยใช้ช่องว่างเป็นตัวคั่น
  • 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)

ดูข้อมูลเพิ่มเติมเกี่ยวกับรายการใบแจ้งหนี้ได้ที่การสร้างรายการใบแจ้งหนี้