ऐप्लिकेशन लिंक की जांच करना

ऐप्लिकेशन लिंक करने की सुविधा लागू करते समय, आपको लिंक करने की सुविधा की जांच करनी चाहिए. इससे यह पक्का किया जा सकेगा कि सिस्टम, आपके ऐप्लिकेशन को आपकी वेबसाइटों से जोड़ सकता है. साथ ही, यूआरएल के अनुरोधों को आपकी उम्मीद के मुताबिक हैंडल कर सकता है.

किसी मौजूदा स्टेटमेंट फ़ाइल की जांच करने के लिए, स्टेटमेंट की सूची जनरेट करने और जांच करने वाले टूल का इस्तेमाल किया जा सकता है.

यहां दिए गए सेक्शन में, ऐप्लिकेशन लिंक की पुष्टि को मैन्युअल तरीके से टेस्ट करने का तरीका बताया गया है. अगर आपको ठीक लगे, तो Play के डीप लिंक टूल या Android Studio के ऐप्लिकेशन लिंक असिस्टेंट से पुष्टि करने की सुविधा की जांच की जा सकती है.

पुष्टि करने के लिए, होस्ट की सूची की पुष्टि करना

टेस्टिंग के दौरान, आपको उन होस्ट की सूची की पुष्टि करनी चाहिए जिनकी पुष्टि सिस्टम को आपके ऐप्लिकेशन के लिए करनी चाहिए. उन सभी यूआरएल की सूची बनाएं जिनके इंटेंट फ़िल्टर में ये एट्रिब्यूट और एलिमेंट शामिल हैं:

  • http या https वैल्यू वाला android:scheme एट्रिब्यूट
  • डोमेन यूआरएल पैटर्न वाला android:host एट्रिब्यूट
  • android.intent.action.VIEW ऐक्शन एलिमेंट
  • android.intent.category.BROWSABLE कैटगरी एलिमेंट

इस सूची का इस्तेमाल करके यह जांच करें कि हर होस्ट और सबडोमेन पर डिजिटल ऐसेट लिंक JSON फ़ाइल मौजूद है या नहीं.

डिजिटल ऐसेट लिंक फ़ाइलों की पुष्टि करना

हर वेबसाइट के लिए, डिजिटल ऐसेट लिंक एपीआई का इस्तेमाल करके पुष्टि करें कि डिजिटल ऐसेट लिंक 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 स्टेटस दिखता है. इस स्टेटस के बाद मौजूद हेक्साडेसिमल नंबर, Android सिस्टम के उस रिकॉर्ड से जुड़ा होता है जिसमें उपयोगकर्ता की ऐप्लिकेशन लिंक करने की प्राथमिकताओं के बारे में जानकारी होती है. इस वैल्यू से यह पता नहीं चलता कि पुष्टि हुई है या नहीं.
इस दौरान, कोई डायलॉग नहीं दिखता. ऐसा तब होता है, जब पुष्टि हो जाती है.

टेस्ट का उदाहरण

ऐप्लिकेशन लिंक की पुष्टि के लिए, सिस्टम को आपके ऐप्लिकेशन की पुष्टि करनी होगी. इसके लिए, आपको इंटेंट फ़िल्टर में उन सभी वेबसाइटों के बारे में बताना होगा जो ऐप्लिकेशन लिंक की ज़रूरी शर्तों को पूरा करती हैं. यहां दिए गए उदाहरण में, कई ऐप्लिकेशन लिंक के साथ मेनिफ़ेस्ट कॉन्फ़िगरेशन दिखाया गया है:

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

स्टेटमेंट लिस्ट के बारे में ज़्यादा जानने के लिए, स्टेटमेंट लिस्ट बनाना लेख पढ़ें