অ্যাপ লিঙ্কগুলি হল গভীর লিঙ্ক যা HTTP বা HTTPS স্কিম ব্যবহার করে এবং আপনার ওয়েবসাইটের সাথে যুক্ত হিসাবে Android দ্বারা যাচাই করা হয়। অ্যাপ লিঙ্কগুলি পরিচালনা করতে নিবন্ধন করতে, এই পদক্ষেপগুলি অনুসরণ করুন:
- আপনার অ্যাপ ম্যানিফেস্টে এক বা একাধিক ইন্টেন্ট ফিল্টার যোগ করুন যা আপনার ওয়েবসাইটের ডোমেন বা ইউআরএল নির্দিষ্ট করে।
- ইন্টেন্ট ফিল্টার উপাদানগুলিতে
autoVerify="true"attribute
যোগ করুন। এটি সিস্টেমকে সংকেত দেয় যে এটি আপনার ওয়েবসাইটেরassetlinks.json
কনফিগারেশনের বিরুদ্ধে স্কিম এবং হোস্ট ডোমেন(গুলি) যাচাই করার চেষ্টা করবে। - ওয়েবসাইট সমিতি ঘোষণা.
নিম্নলিখিতটি স্কিম এবং হোস্টের পাশাপাশি autoVerify="true
" সহ একটি অ্যাপ লিঙ্ক ঘোষণার উদাহরণ:
<activity
android:name=".MainActivity"
android:exported="true"
...>
<!-- Make sure you explicitly set android:autoVerify to "true". -->
<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" />
<!-- If a user clicks on a link that uses the "http" scheme, your
app should be able to delegate that traffic to "https". -->
<!-- Do not include other schemes, as this will prevent verification. -->
<data android:scheme="http" />
<data android:scheme="https" />
<!-- Include one or more domains that should be verified. -->
<data android:host="www.example.com" />
<data android:host="*.example.com" />
</intent-filter>
</activity>
কোড সম্পর্কে মূল পয়েন্ট
- AutoVerify :
android:autoVerify="true
" অ্যাট্রিবিউট অ্যাপ লিঙ্কের জন্য প্রয়োজন। এটি সিস্টেমকে সংকেত দেয় যে এটি আপনার অ্যাপ এবং<data>
ট্যাগে নির্দিষ্ট করা স্কিম এবং ডোমেন(গুলি) এর মধ্যে সম্পর্ক যাচাই করার চেষ্টা করবে। আপনি যাচাইযোগ্য হতে চান এমন প্রতিটি ইন্টেন্ট ফিল্টারেautoVerify="true
" যোগ করার পরামর্শ দেওয়া হয়। - ডেটা উপাদান : প্রতিটি অ্যাপ লিংক ইনটেন্ট ফিল্টারে অবশ্যই এক বা একাধিক
<data>
উপাদান থাকতে হবে যা আপনার যাচাইযোগ্য ওয়েবসাইট ডোমেনের সাথে মেলে এমন স্কিম এবং হোস্ট ফর্ম্যাটগুলি নির্দিষ্ট করে। - স্কিম : ইনটেন্ট ফিল্টারে অবশ্যই
http
এবংhttps
উভয় স্কিমের জন্য<data>
উপাদান অন্তর্ভুক্ত করতে হবে। হোস্ট : আপনি ঐচ্ছিকভাবে এক বা একাধিক হোস্টের সাথে মেলে
<data>
উপাদান যোগ করতে পারেন। একাধিক সাবডোমেন (যেমন*.example.com
) মেলে একটি ওয়াইল্ডকার্ড (*
) ব্যবহার করুন। সিস্টেম আপনার ওয়েবসাইটে আপনার assetlinks.json ফাইলের বিরুদ্ধে প্রতিটি হোস্ট যাচাই করার চেষ্টা করবে। মনে রাখবেন যে কোনো পাথ-লেভেল রাউটিং assetlinks.json ফাইল দ্বারা পরিচালনা করা উচিত (নীচের সেরা অনুশীলন বিভাগটি দেখুন)।একাধিক হোস্ট : আপনি একাধিক হোস্ট ডোমেন ঘোষণা করলে, সিস্টেম (Android 12+ এ) প্রতিটিকে যাচাই করার চেষ্টা করে। কোনো হোস্ট যাচাই করা হলে, অ্যাপটি সেই যাচাইকৃত হোস্টের লিঙ্কগুলির জন্য ডিফল্ট হ্যান্ডলার হয়ে যায়। অ্যান্ড্রয়েড 11 এবং তার নিচের সংস্করণে, একটি হোস্টও যাচাই করা না গেলে যাচাইকরণ ব্যর্থ হয়।
একাধিক অভিপ্রায় ফিল্টার : যখন আপনার উদ্দেশ্য অনন্য ইউআরএল ঘোষণা করা হয় (যেমন স্কিম এবং হোস্টের একটি নির্দিষ্ট সংমিশ্রণ) তখন আলাদা ফিল্টার তৈরি করা গুরুত্বপূর্ণ, কারণ একই অভিপ্রায় ফিল্টারের একাধিক
<data>
উপাদানগুলি তাদের সম্মিলিত বৈশিষ্ট্যগুলির সমস্ত বৈচিত্রের জন্য অ্যাকাউন্টে একত্রিত করা হয়।
ম্যানিফেস্ট ফিল্টার নিয়মের জন্য বিবেচনা
আপনি যদি অ্যান্ড্রয়েড 15 এবং উচ্চতর সংস্করণে ডায়নামিক অ্যাপ লিঙ্কগুলির সাথে ব্যবহারের জন্য ফিল্টারগুলি সেট আপ করেন তবে এটি মনে রাখা গুরুত্বপূর্ণ যে সার্ভার-সাইড assetlinks.json ফাইলে ঘোষিত ডায়নামিক নিয়মগুলি আপনার অ্যাপ ম্যানিফেস্টে স্ট্যাটিকভাবে ঘোষণা করা URL নিয়মগুলির পরিধিকে প্রসারিত করতে পারে না৷
এই কারণে, আমরা এই পদ্ধতিটি ব্যবহার করার পরামর্শ দিই:
- আপনার অ্যাপ ম্যানিফেস্টে, সম্ভাব্য বিস্তৃত সুযোগ সেট করুন, যেমন শুধুমাত্র স্কিম এবং ডোমেন ঘোষণা করে
- আরও পরিমার্জনের জন্য সার্ভার-সাইড assetlinks.json নিয়মের উপর নির্ভর করুন, যেমন পাথ-লেভেল রাউটিং।
এই আদর্শ কনফিগারেশনের সাহায্যে, আপনি গতিশীলভাবে assetlinks.json
ফাইলে নতুন অ্যাপ লিঙ্ক পাথগুলি যোগ করতে সক্ষম হবেন, এটি জেনে যে সেগুলি আপনার অ্যাপ ম্যানিফেস্টে সেট করা বিস্তৃত সুযোগের মধ্যে ফিট হবে।
একাধিক হোস্টের জন্য অ্যাপ লিঙ্ক সমর্থন করে
সিস্টেমটি অবশ্যই সেই অভিপ্রায় ফিল্টারে সংশ্লিষ্ট ওয়েব ডোমেনে হোস্ট করা ডিজিটাল সম্পদ লিঙ্ক ফাইলগুলির বিরুদ্ধে অ্যাপের ইউআরএল ইন্টেন্ট ফিল্টারের ডেটা উপাদানগুলিতে নির্দিষ্ট হোস্ট যাচাই করতে সক্ষম হবে। যাচাইকরণ ব্যর্থ হলে, সিস্টেমটি তারপরে অভিপ্রায় সমাধানের জন্য তার আদর্শ আচরণে ডিফল্ট করে, যেমনটি অ্যাপ সামগ্রীতে গভীর লিঙ্ক তৈরি করুন- এ বর্ণিত হয়েছে। যাইহোক, অ্যাপটির অন্যান্য অভিপ্রায় ফিল্টারে সংজ্ঞায়িত যেকোনো URL প্যাটার্নের জন্য অ্যাপটিকে এখনও ডিফল্ট হ্যান্ডলার হিসেবে যাচাই করা যেতে পারে।
উদাহরণস্বরূপ, নিম্নলিখিত উদ্দেশ্য ফিল্টার সহ একটি অ্যাপ শুধুমাত্র https://www.example.com
জন্য যাচাইকরণ পাস করবে যদি একটি assetlinks.json
ফাইল https://www.example.com/.well-known/assetlinks.json
এ পাওয়া যায় কিন্তু https://www.example.net/.well-known/assetlinks.json
না থাকে :
<application>
<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="http" />
<data android:scheme="https" />
<data android:host="www.example.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="www.example.net" />
</intent-filter>
</activity>
</application>
একাধিক সাবডোমেনের জন্য অ্যাপ লিঙ্কিং সমর্থন করে
ডিজিটাল অ্যাসেট লিঙ্ক প্রোটোকল আপনার অভিপ্রায় ফিল্টারগুলিতে সাবডোমেনগুলিকে অনন্য, পৃথক হোস্ট হিসাবে বিবেচনা করে। তাই যদি আপনার অভিপ্রায় ফিল্টার বিভিন্ন সাবডোমেন সহ একাধিক হোস্ট তালিকাভুক্ত করে, তাহলে আপনাকে অবশ্যই প্রতিটি ডোমেনে একটি বৈধ assetlinks.json
প্রকাশ করতে হবে। উদাহরণস্বরূপ, নিম্নলিখিত অভিপ্রায় ফিল্টারটিতে www.example.com
এবং mobile.example.com
স্বীকৃত অভিপ্রায় URL হোস্ট হিসাবে অন্তর্ভুক্ত রয়েছে৷ সুতরাং একটি বৈধ assetlinks.json
অবশ্যই https://www.example.com/.well-known/assetlinks.json
এবং https://mobile.example.com/.well-known/assetlinks.json
উভয় ঠিকানায় প্রকাশ করতে হবে।
<application>
<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>
</activity>
</application>
বিকল্পভাবে, আপনি যদি একটি ওয়াইল্ডকার্ড দিয়ে আপনার হোস্টনাম ঘোষণা করেন (যেমন *.example.com
), আপনাকে অবশ্যই আপনার assetlinks.json
ফাইলটি রুট হোস্টনামে প্রকাশ করতে হবে ( example.com
)। উদাহরণস্বরূপ, নিম্নোক্ত অভিপ্রায় ফিল্টার সহ একটি অ্যাপ example.com
এর যেকোনো উপ-নামের জন্য যাচাইকরণ পাস করবে (যেমন foo.example.com
) যতক্ষণ না assetlinks.json
ফাইলটি https://example.com/.well-known/assetlinks.json
এ প্রকাশিত হয়:
<application>
<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:host="*.example.com" />
</intent-filter>
</activity>
</application>
একই ডোমেনের সাথে যুক্ত একাধিক অ্যাপের জন্য পরীক্ষা করুন
আপনি যদি একাধিক অ্যাপ্লিকেশান প্রকাশ করেন যেগুলির প্রত্যেকটি একই ডোমেনের সাথে যুক্ত, সেগুলির প্রতিটি সফলভাবে যাচাই করা যেতে পারে৷ যাইহোক, যদি অ্যাপগুলি ঠিক একই ডোমেন হোস্ট এবং পাথের সমাধান করতে পারে, যেমনটি একটি অ্যাপের লাইট এবং পূর্ণ সংস্করণের ক্ষেত্রে হতে পারে, শুধুমাত্র সম্প্রতি ইনস্টল করা অ্যাপটি সেই ডোমেনের জন্য ওয়েব ইন্টেন্টগুলি সমাধান করতে পারে।
এই ধরনের ক্ষেত্রে, ব্যবহারকারীর ডিভাইসে সম্ভাব্য বিরোধপূর্ণ অ্যাপের জন্য পরীক্ষা করুন, যদি আপনার কাছে প্রয়োজনীয় প্যাকেজ দৃশ্যমানতা থাকে। তারপর, আপনার অ্যাপে, একটি কাস্টম চয়নকারী ডায়ালগ দেখান যাতে কলিং queryIntentActivities
থেকে ফলাফল রয়েছে। ব্যবহারকারী ডায়ালগে প্রদর্শিত মেলা অ্যাপের তালিকা থেকে তাদের পছন্দের অ্যাপটি নির্বাচন করতে পারেন।