عند تنفيذ ميزة ربط التطبيقات، يجب اختبار وظيفة الربط للتأكّد من أنّ النظام يمكنه ربط تطبيقك بمواقعك الإلكترونية ومعالجة طلبات عناوين URL على النحو الذي تتوقّعه.
لاختبار ملف بيان حالي، يمكنك استخدام أداة Statement List Generator and Tester.
توضّح الأقسام التالية كيفية اختبار عملية التحقّق من "روابط التطبيقات" يدويًا. إذا كنت تفضّل ذلك، يمكنك اختبار عملية التحقّق من أداة Play Deep Links أو "مساعد روابط التطبيقات" في "استوديو Android".
تأكيد قائمة المضيفين المطلوب التحقّق منهم
عند إجراء الاختبار، يجب تأكيد قائمة المضيفين المرتبطين الذين يجب أن يتحقّق منهم النظام لتطبيقك. أنشئ قائمة بجميع عناوين URL التي تتضمّن فلاتر النية المقابلة لها السمات والعناصر التالية:
- السمة
android:schemeبقيمةhttpأوhttps - السمة
android:hostبنمط عنوان URL للنطاق - عنصر الإجراء
android.intent.action.VIEW - عنصر الفئة
android.intent.category.BROWSABLE
استخدِم هذه القائمة للتأكّد من توفير ملف JSON يتضمّن روابط تنقل إلى مواد عرض رقمية على كل مضيف ونطاق فرعي مُسمّى.
تأكيد ملفات روابط التنقل إلى مواد العرض الرقمية
لكل موقع إلكتروني، استخدِم Digital Asset Links API للتأكّد من أنّ ملف JSON يتضمّن روابط تنقل إلى مواد عرض رقمية مستضاف ومحدّد بشكلٍ صحيح:
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
بالنسبة إلى "روابط التطبيقات الديناميكية"، يمكنك أيضًا التحقّق من إضافات العلاقة.
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: يعرّف التطبيق باسم حزمته، كما هو موضّح في البيان.Domains: يعرض القائمة الكاملة للمضيفين الذين تعالج روابط الويب الخاصة بهم هذا التطبيق، باستخدام مسافات فارغة كفواصل.Status: يعرض إعداد معالجة الروابط الحالي لهذا التطبيق. يعرض التطبيق الذي اجتاز عملية التحقّق والذي يحتوي بيانه علىandroid:autoVerify="true"الحالةalways. يرتبط الرقم السداسي العشري بعد هذه الحالة بسجلّ نظام Android لإعدادات ربط التطبيقات الخاصة بالمستخدم. لا تشير هذه القيمة إلى ما إذا نجحت عملية التحقّق أم لا.
مثال على الاختبار
لكي تنجح عملية التحقّق من "رابط التطبيق"، يجب أن يتمكّن النظام من التحقّق من تطبيقك باستخدام كل موقع من المواقع الإلكترونية التي تحدّدها في intent filter معيّن يستوفي معايير "روابط التطبيقات". يوضّح المثال التالي إعداد بيان يتضمّن عدة "روابط تطبيقات" محدّدة:
<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>
في ما يلي قائمة بالمضيفين الذين ستحاول المنصة التحقّق منهم من البيان السابق:
www.example.com
mobile.example.com
www.example2.com
account.example.com
في ما يلي قائمة بالمضيفين الذين لن تحاول المنصة التحقّق منهم من البيان السابق:
map.example.com (it does not have android.intent.category.BROWSABLE)
market://example.com (it does not have either an "http" or "https" scheme)
لمزيد من المعلومات عن قوائم البيانات، يُرجى الاطّلاع على مقالة إنشاء قائمة بيانات.