لینک های اپلیکیشن را تست کنید

هنگام اجرای ویژگی پیوند برنامه، باید عملکرد پیوند را آزمایش کنید تا مطمئن شوید که سیستم می تواند برنامه شما را با وب سایت های شما مرتبط کند و درخواست های URL را همانطور که انتظار دارید رسیدگی کند.

برای آزمایش یک فایل بیانیه موجود، می توانید از ابزار Statement List Generator and Tester استفاده کنید.

بخش‌های زیر نحوه آزمایش تأیید صحت پیوندهای برنامه را به صورت دستی شرح می‌دهند. اگر ترجیح می‌دهید، می‌توانید تأیید را از ابزار Play Deep Links یا «دستیار پیوندهای برنامه Android Studio» آزمایش کنید.

لیست میزبان ها را برای تأیید تأیید کنید

هنگام آزمایش، باید لیست میزبان های مرتبطی را که سیستم باید برای برنامه شما تأیید کند تأیید کنید. فهرستی از همه URLهایی که فیلترهای هدف مربوطه آنها شامل ویژگی ها و عناصر زیر است تهیه کنید:

  • ویژگی android:scheme با مقدار http یا https
  • ویژگی android:host با الگوی URL دامنه
  • عنصر اقدام android.intent.action.VIEW
  • عنصر دسته android.intent.category.BROWSABLE

از این لیست برای بررسی اینکه یک فایل JSON Links دارایی دیجیتال در هر میزبان و زیر دامنه نامگذاری شده ارائه شده است استفاده کنید.

فایل های Digital Asset Links را تایید کنید

برای هر وب سایت، از Digital Asset Links API استفاده کنید تا تأیید کنید که فایل JSON پیوندهای دارایی دیجیتال به درستی میزبانی و تعریف شده است:

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

برای پیوندهای برنامه پویا، می‌توانید پسوندهای رابطه را نیز بررسی کنید.

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 را نشان می‌دهد. عدد هگزادسیمال بعد از این وضعیت مربوط به سابقه سیستم اندروید از تنظیمات برگزیده پیوند برنامه کاربر است. این مقدار نشان نمی دهد که آیا تأیید با موفقیت انجام شده است یا خیر.

نمونه تست

برای موفقیت آمیز بودن تأیید پیوند برنامه، سیستم باید بتواند برنامه شما را با هر یک از وب‌سایت‌هایی که در فیلتر هدف مشخصی که با معیارهای پیوندهای برنامه مطابقت دارد، تأیید کند. مثال زیر یک پیکربندی مانیفست را با چندین پیوند برنامه تعریف شده نشان می دهد:

<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)

برای کسب اطلاعات بیشتر در مورد لیست های بیانیه، به ایجاد فهرست بیانیه مراجعه کنید