Khi triển khai tính năng liên kết ứng dụng, bạn nên kiểm thử chức năng liên kết để đảm bảo hệ thống có thể liên kết ứng dụng của bạn với các trang web của bạn và xử lý các yêu cầu URL như bạn mong đợi.
Để kiểm thử một tệp khai báo hiện có, bạn có thể sử dụng công cụ Statement List Generator and Tester (Trình tạo và kiểm thử danh sách khai báo).
Các phần sau đây mô tả cách kiểm thử quy trình xác minh Đường liên kết đến ứng dụng theo cách thủ công. Nếu muốn, bạn có thể kiểm thử quy trình xác minh bằng công cụ Đường liên kết sâu của Play hoặc Trợ lý App Links của Android Studio.
Xác nhận danh sách máy chủ lưu trữ cần xác minh
Khi kiểm thử, bạn nên xác nhận danh sách các máy chủ lưu trữ được liên kết mà hệ thống sẽ xác minh cho ứng dụng của bạn. Lập danh sách tất cả các URL mà bộ lọc ý định tương ứng bao gồm các thuộc tính và phần tử sau:
- Thuộc tính
android:scheme
có giá trị làhttp
hoặchttps
- Thuộc tính
android:host
có mẫu URL miền - Phần tử thao tác
android.intent.action.VIEW
- Phần tử danh mục
android.intent.category.BROWSABLE
Sử dụng danh sách này để kiểm tra xem tệp JSON chứa Digital Asset Links (Đường liên kết đến tài sản kỹ thuật số) có được cung cấp trên mỗi máy chủ lưu trữ và miền phụ được đặt tên hay không.
Xác nhận tệp Digital Asset Links
Đối với mỗi trang web, hãy sử dụng Digital Asset Links API để xác nhận rằng tệp JSON chứa Digital Asset Links được lưu trữ và xác định đúng cách:
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
Đối với Đường liên kết động đến ứng dụng, bạn cũng có thể kiểm tra các tiện ích liên kết.
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
Kiểm tra chính sách liên kết
Trong quá trình kiểm thử, bạn có thể kiểm tra chế độ cài đặt hệ thống hiện tại để xử lý đường liên kết. Sử dụng lệnh sau để xem danh sách các chính sách hiện có về việc xử lý đường liên kết cho tất cả ứng dụng trên thiết bị được kết nối:
adb shell dumpsys package domain-preferred-apps
Lệnh sau đây cũng thực hiện việc tương tự:
adb shell dumpsys package d
Lệnh này trả về danh sách từng người dùng hoặc hồ sơ được xác định trên thiết bị, trước đó là tiêu đề theo định dạng sau:
App linkages for user 0:
Sau tiêu đề này, đầu ra sẽ sử dụng định dạng sau để liệt kê các chế độ cài đặt xử lý đường liên kết cho người dùng đó:
Package: com.android.vending
Domains: play.google.com market.android.com
Status: always : 200000002
Danh sách này cho biết ứng dụng nào được liên kết với miền nào đối với người dùng đó:
Package
– Xác định một ứng dụng theo tên gói, như được khai báo trong tệp kê khai của ứng dụng.Domains
– Hiện danh sách đầy đủ các máy chủ mà ứng dụng này xử lý đường liên kết trên web, sử dụng khoảng trắng làm dấu phân cách.Status
– Cho biết chế độ cài đặt hiện tại về việc xử lý đường liên kết cho ứng dụng này. Ứng dụng đã vượt qua quy trình xác minh và có chứaandroid:autoVerify="true"
trong tệp kê khai sẽ có trạng tháialways
. Số thập lục phân sau trạng thái này có liên quan đến bản ghi của hệ thống Android về lựa chọn ưu tiên liên kết ứng dụng của người dùng. Giá trị này không cho biết liệu quá trình xác minh có thành công hay không.
Ví dụ về kiểm thử
Để quy trình xác minh đường liên kết đến ứng dụng thành công, hệ thống phải có thể xác minh ứng dụng của bạn với từng trang web mà bạn chỉ định trong một bộ lọc ý định nhất định đáp ứng các tiêu chí cho đường liên kết đến ứng dụng. Ví dụ sau đây cho thấy một cấu hình tệp kê khai có một số đường liên kết đến ứng dụng được xác định:
<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>
Danh sách các máy chủ mà nền tảng sẽ cố gắng xác minh từ tệp kê khai trước đó là:
www.example.com
mobile.example.com
www.example2.com
account.example.com
Sau đây là danh sách các máy chủ mà nền tảng sẽ không cố gắng xác minh từ tệp kê khai trước đó:
map.example.com (it does not have android.intent.category.BROWSABLE)
market://example.com (it does not have either an "http" or "https" scheme)
Để tìm hiểu thêm về danh sách câu lệnh, hãy xem phần Tạo danh sách câu lệnh