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

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

برای آزمایش یک فایل دستور موجود، می‌توانید از ابزار تولیدکننده و آزمایشگر لیست دستور استفاده کنید.

بخش‌های زیر نحوه‌ی آزمایش دستی تأیید App Links را شرح می‌دهند. در صورت تمایل، می‌توانید تأیید را از ابزار Play Deep Links یا Android Studio App Links Assistant آزمایش کنید.

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

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

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

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

فایل‌های پیوندهای دارایی دیجیتال را تأیید کنید

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

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

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

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