পরীক্ষা অ্যাপ লিঙ্ক

অ্যাপ লিঙ্কিং ফিচারটি প্রয়োগ করার সময়, লিঙ্কিং কার্যকারিতাটি পরীক্ষা করে দেখা উচিত যাতে নিশ্চিত হওয়া যায় যে সিস্টেমটি আপনার অ্যাপকে আপনার ওয়েবসাইটগুলির সাথে যুক্ত করতে এবং আপনার প্রত্যাশা অনুযায়ী URL অনুরোধগুলি পরিচালনা করতে পারছে।

বিদ্যমান কোনো স্টেটমেন্ট ফাইল পরীক্ষা করার জন্য, আপনি স্টেটমেন্ট লিস্ট জেনারেটর এবং টেস্টার টুলটি ব্যবহার করতে পারেন।

নিম্নলিখিত বিভাগগুলিতে বর্ণনা করা হয়েছে কীভাবে ম্যানুয়ালি আপনার অ্যাপ লিঙ্ক যাচাইকরণ পরীক্ষা করবেন। আপনি চাইলে, প্লে ডিপ লিঙ্কস টুল অথবা অ্যান্ড্রয়েড স্টুডিও অ্যাপ লিঙ্কস অ্যাসিস্ট্যান্ট থেকেও যাচাইকরণ পরীক্ষা করতে পারেন।

যাচাই করার জন্য হোস্টদের তালিকাটি নিশ্চিত করুন।

টেস্টিং করার সময়, আপনার অ্যাপের জন্য সিস্টেম যে সংশ্লিষ্ট হোস্টগুলো যাচাই করবে, তার তালিকাটি নিশ্চিত করে নিন। এমন সমস্ত URL-এর একটি তালিকা তৈরি করুন, যাদের সংশ্লিষ্ট ইন্টেন্ট ফিল্টারগুলোতে নিম্নলিখিত অ্যাট্রিবিউট এবং এলিমেন্টগুলো অন্তর্ভুক্ত রয়েছে:

  • android:scheme অ্যাট্রিবিউটের মান http বা https
  • ডোমেইন ইউআরএল প্যাটার্নের সাথে android:host অ্যাট্রিবিউট
  • android.intent.action.VIEW অ্যাকশন এলিমেন্ট
  • android.intent.category.BROWSABLE ক্যাটাগরি এলিমেন্ট

এই তালিকাটি ব্যবহার করে যাচাই করুন যে প্রতিটি নামযুক্ত হোস্ট এবং সাবডোমেইনে একটি ডিজিটাল অ্যাসেট লিঙ্কস JSON ফাইল সরবরাহ করা হয়েছে কিনা।

ডিজিটাল অ্যাসেট লিঙ্ক ফাইলগুলি নিশ্চিত করুন

প্রতিটি ওয়েবসাইটের জন্য, ডিজিটাল অ্যাসেট লিঙ্কস JSON ফাইলটি সঠিকভাবে হোস্ট এবং সংজ্ঞায়িত করা হয়েছে কিনা তা নিশ্চিত করতে ডিজিটাল অ্যাসেট লিঙ্কস API ব্যবহার করুন:

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)

স্টেটমেন্ট তালিকা সম্পর্কে আরও জানতে, স্টেটমেন্ট তালিকা তৈরি করা দেখুন।