App Link হল একটি Android প্রক্রিয়া (Android 6.0+) যা ইনস্টল করা অ্যাপে স্বয়ংক্রিয়ভাবে ওয়েব লিঙ্ক খুলে, নির্বাচন ডায়ালগ এড়িয়ে যায়। শব্দটি Google 2015 সালে Android 6.0 Marshmallow-এর সাথে প্রবর্তন করেছিল। Android Developers অনুযায়ী, App Link Digital Asset Links ব্যবহার করে — সার্ভারে ফাইলের মাধ্যমে ক্রিপ্টোগ্রাফিক যাচাইকরণ, নিশ্চিত করে যে ডোমেনটি অ্যাপ ডেভেলপারের।
মূল বিষয়
App Link (Android App Link) হল একটি মানক HTTPS লিঙ্ক, যা Android ডিভাইসে ক্লিক করলে, ব্রাউজার এবং অ্যাপের মধ্যে মানক নির্বাচন ডায়ালগ না দেখিয়ে ইনস্টল করা অ্যাপটি স্বয়ংক্রিয়ভাবে খোলে। Google Android 6.0 (API 23)-এ “চুজার ডায়ালগ” সমস্যার সমাধান হিসাবে App Link চালু করেছিল, যা অতিরিক্ত ক্লিক এবং ব্যবহারকারীর বিভ্রান্তির কারণে deep link রূপান্তর কমিয়েছিল।
মূল উদ্ভাবন: যাচাইকরণ। Android Digital Asset Links API-এর মাধ্যমে যাচাই করে যে ডোমেনটি প্রকৃতপক্ষে অ্যাপ ডেভেলপারের। Google Play Store প্রকাশনার সময় App Link পরীক্ষা করে এবং যাচাইকরণ ব্যর্থ হলে আপডেট প্রত্যাখ্যান করতে পারে। এটি App Link-কে Custom URL Scheme-এর চেয়ে বেশি নিরাপদ করে: কোনও অন্যান্য অ্যাপ আপনার ডোমেনের লিঙ্ক আটকাতে পারে না।
Digital Asset Links হল একটি খোলা প্রোটোকল যা Google শুধুমাত্র App Link-এর জন্য নয়, অনুসন্ধান ফলাফল, Google Assistant এবং Smart Lock for Passwords-এ ওয়েবসাইটগুলিকে অ্যাপের সাথে সংযুক্ত করার জন্যও ব্যবহার করে। প্রোটোকলটি ক্রিপ্টোগ্রাফিক যাচাইকরণের উপর ভিত্তি করে: assetlinks.json-এ অ্যাপের স্বাক্ষর সার্টিফিকেটের SHA256 ফিঙ্গারপ্রিন্ট উল্লেখ করা হয়, যা জালিয়াতি দূর করে।
App Link-এর কাজের প্রক্রিয়া তিনটি ধাপ নিয়ে গঠিত: Digital Asset Links যাচাইকরণ, Intent Filter-এর মাধ্যমে প্রক্রিয়াকরণ এবং স্বয়ংক্রীয় পুনঃনির্দেশ। প্রতিটি ধাপ বাধ্যতামূলক। যাচাইকরণ ব্যর্থ হলে, Android একটি নির্বাচন ডায়ালগ দেখায় — এই ধরনের deep link স্বাভাবিকভাবে কাজ করে কিন্তু স্বয়ংক্রিয় রূপান্তরের সুবিধা ছাড়া।
Asset Links হল একটি JSON ফাইল যা সার্ভারে https://domain/.well-known/assetlinks.json ঠিকানায় রাখা হয়। ফাইলটিতে fields সহ অবজেক্টের একটি অ্যারে থাকে: relation (সম্পর্কের ধরন বর্ণনাকারী স্ট্রিংয়ের অ্যারে), target (অ্যাপের namespace এবং package_name সহ অবজেক্ট, পাশাপাশি sha256_cert_fingerprints — স্বাক্ষর সার্টিফিকেটের SHA256 ফিঙ্গারপ্রিন্টের অ্যারে)।
// assetlinks.json — App Link-এর ন্যূনতম কনফিগারেশন
[{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example.app",
"sha256_cert_fingerprints": [
"14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:AD:A4:C5:AD:6B:01:14:79:6B:CB:12:6B:21:39:6F:EA"
]
}
}]
SHA256 ফিঙ্গারপ্রিন্ট সেই সার্টিফিকেট থেকে পাওয়া যায় যা দিয়ে অ্যাপে স্বাক্ষর করা হয়েছে। ডিবাগ বিল্ডের জন্য স্ট্যান্ডার্ড Android ডিবাগ সার্টিফিকেট ব্যবহার করা হয়, রিলিজ বিল্ডের জন্য — Google Play Console থেকে সার্টিফিকেট বা আপনার নিজের। গুরুত্বপূর্ণ: স্বাক্ষর সার্টিফিকেট পরিবর্তন করার সময় (উদাহরণস্বরূপ, App Signing by Google Play-তে স্যুইচ করার সময়), সার্ভারে assetlinks.json আপডেট করা প্রয়োজন, অন্যথায় App Link কাজ বন্ধ করবে।
Android প্রথম লিঙ্কে ক্লিক করার সময় App Link পরীক্ষা করে। সিস্টেম সার্ভার থেকে assetlinks.json ডাউনলোড করে, ইনস্টল করা অ্যাপের সার্টিফিকেটের সাথে package_name এবং SHA256 ফিঙ্গারপ্রিন্ট মিলিয়ে দেখে। ডেটা ম্যাচ করলে, Android Intent Filter-কে যাচাইকৃত হিসাবে চিহ্নিত করে, এবং এই ডোমেনের পরবর্তী সমস্ত লিঙ্ক স্বয়ংক্রিয়ভাবে, ডায়ালগ ছাড়াই খোলে।
// AndroidManifest.xml — App Link-এর জন্য Intent Filter
<activity
android:name=".ui.ProductActivity"
android:exported="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" />
<data
android:scheme="https"
android:host="example.com"
android:pathPrefix="/product" />
</intent-filter>
</activity>
autoVerify="true" একটি বাধ্যতামূলক বৈশিষ্ট্য যা Android-কে assetlinks.json যাচাই করতে নির্দেশ দেয়। এই বৈশিষ্ট্য ছাড়া, Intent Filter যাচাই হবে না এবং App Link সক্রিয় হবে না। Android একটি Activity-তে একাধিক Intent Filter সমর্থন করে — বিভিন্ন হোস্টের জন্য। সিস্টেম প্রতিটি হোস্ট আলাদাভাবে পরীক্ষা করে। যাচাইকরণ অ্যাসিঙ্ক্রোনাসভাবে সম্পাদিত হয় এবং প্রথম ক্লিকে 20 সেকেন্ড পর্যন্ত সময় নিতে পারে।
সফল যাচাইকরণের পর, Android যাচাইকৃত Intent Filter-এর সাথে মেলে এমন কোনও লিঙ্কে ক্লিক করলে স্বয়ংক্রিয়ভাবে অ্যাপ খোলে। ব্যবহারকারী কোনও নির্বাচন ডায়ালগ দেখেন না — অ্যাপ তৎক্ষণাৎ খোলে। যদি অ্যাপ ইনস্টল না থাকে, লিঙ্কটি ব্রাউজারে খোলে (সাধারণ ওয়েব পৃষ্ঠার মতো)। এটি আদর্শ ব্যবহারকারীর অভিজ্ঞতা: অপ্রয়োজনীয় কাজ ছাড়াই নির্বিঘ্ন রূপান্তর।
গুরুত্বপূর্ণ: স্বয়ংক্রিয় পুনঃনির্দেশ শুধুমাত্র https স্কিমের জন্য কাজ করে। App Link http (অসুরক্ষিত প্রোটোকল) সমর্থন করে না। যদি ব্যবহারকারী ম্যানুয়ালি http লিঙ্ক খোলে (উদাহরণস্বরূপ, SMS থেকে), Android যাচাইকরণ করে না এবং একটি নির্বাচন ডায়ালগ দেখায়। অ্যাপে যাওয়া সমস্ত লিঙ্কের জন্য https ব্যবহার করার এবং সার্ভারে HTTP → HTTPS পুনঃনির্দেশ কনফিগার করার পরামর্শ দেওয়া হয়।
App Link হল Android-এ Deep Link-এর বিবর্তন, প্রতিস্থাপন নয়। তাদের মধ্যে পার্থক্য মৌলিক। সাধারণ Deep Link (Custom URL Scheme) কাস্টম স্কিম (myapp://) সহ এবং autoVerify ছাড়া Intent Filter-এর মাধ্যমে কাজ করে। Android পরীক্ষা করে না যে অ্যাপটি প্রকৃতপক্ষে এই স্কিমের সাথে যুক্ত কিনা — যেকোনো অ্যাপ myapp:// নিবন্ধন করতে এবং লিঙ্ক আটকাতে পারে।
App Link Deep Link-এর তিনটি সমস্যা সমাধান করে। প্রথম: নিরাপত্তা — Digital Asset Links-এর মাধ্যমে যাচাইকরণ লিঙ্ক আটকানো প্রতিরোধ করে। দ্বিতীয়: ব্যবহারকারীর অভিজ্ঞতা — নির্বাচন ডায়ালগের অনুপস্থিতি লক্ষ্য কর্মে রূপান্তর 20–40% বাড়ায়। তৃতীয়: সূচীকরণ — Google https App Link URLs সূচীভুক্ত করে এবং অনুসন্ধান ফলাফলে অ্যাপের ভিতরের সামগ্রীর লিঙ্ক হিসাবে দেখাতে পারে।
সামঞ্জস্যতা: App Link Android 6.0+ (99% ডিভাইস) তে কাজ করে। Android 5.x (Lollipop)-এর জন্য নির্বাচন ডায়ালগ সহ সাধারণ Deep Link ব্যবহার করা হয়। তাই উভয় প্রক্রিয়া সমর্থন করার পরামর্শ দেওয়া হয়: আধুনিক ডিভাইসের জন্য App Link এবং পুরানো সংস্করণের জন্য ফলব্যাক হিসাবে Custom URL Scheme। autoVerify="true" সহ Intent Filter পশ্চাদগামী সামঞ্জস্যতা ভাঙে না — Android < 6-এ বৈশিষ্ট্যটি উপেক্ষা করা হয়।
| বৈশিষ্ট্য | Deep Link | App Link |
|---|---|---|
| স্কিম | কাস্টম (myapp://) | HTTPS (https://domain) |
| যাচাইকরণ | না | assetlinks.json |
| নির্বাচন ডায়ালগ | দেখানো হয় | স্বয়ংক্রিয় পুনঃনির্দেশ |
| Android সংস্করণ | API 1+ | API 23+ (6.0+) |
| Google সূচীকরণ | না | হ্যাঁ (https URL) |
App Link সেটআপ তিনটি ধাপ প্রয়োজন: ম্যানিফেস্টে Intent Filter কনফিগারেশন, সার্ভারে assetlinks.json রাখা এবং যাচাইকরণ পরীক্ষা। প্রথম ধাপ হল AndroidManifest.xml-এ android:autoVerify="true" সহ Intent Filter যোগ করা। https স্কিম, হোস্ট এবং অ্যাপের যে পথগুলি পরিচালনা করা উচিত তা উল্লেখ করা গুরুত্বপূর্ণ। পথগুলিতে সাবফোল্ডারের জন্য ওয়াইল্ডকার্ড (*) থাকতে পারে।
দ্বিতীয় ধাপ — assetlinks.json তৈরি করা। ফাইলটি Android Studio (Tools → App Links Assistant)-এর মাধ্যমে উৎপন্ন করা যেতে পারে। সহায়ক ডিবাগিং এবং পরীক্ষায়ও সাহায্য করে। ফাইলটি সার্ভারে /.well-known/assetlinks.json পথে রাখা হয়। সার্ভারকে Content-Type: application/json ফেরত দিতে হবে এবং পুনঃনির্দেশ ছাড়া HTTPS-এর মাধ্যমে অ্যাক্সেসযোগ্য হতে হবে। Google Play Console Publishing বিভাগে App Link যাচাইকরণ অবস্থাও দেখায়।
পরীক্ষা — তৃতীয় ধাপ। পরীক্ষার জন্য adb ব্যবহার করুন: কমান্ড adb shell am start -W -a android.intent.action.VIEW -d “https://example.com/product/42” অ্যাপ খোলে। অ্যাপের পরিবর্তে ব্রাউজার খুললে, assetlinks.json এবং autoVerify পরীক্ষা করুন। Android Studio App Links Assistant-এ একটি অন্তর্নির্মিত পরীক্ষক রয়েছে: এটি প্রতিটি ডোমেন এবং পথের জন্য যাচাইকরণ অবস্থা দেখায়। স্বয়ংক্রিয় পরীক্ষার জন্য, Intent Matcher সহ Android Testing Library ব্যবহার করুন।
Android 12 (API 31) App Link প্রক্রিয়াকরণে পরিবর্তন এনেছে। একটি নতুন ডোমেন-নির্দিষ্ট যাচাইকরণ যোগ করা হয়েছে: সিস্টেম প্রতিটি লিঙ্ক আলাদাভাবে পরীক্ষা করে, পুরো Intent Filter নয়। এটি নিরাপত্তা বাড়ায়, কিন্তু নতুন পথ যোগ করার সময় assetlinks.json ফাইল আপডেট করা প্রয়োজন। Android 12 ADB-এর সাথে Android App Links Assistant-ও চালু করেছে — শেলের মাধ্যমে যাচাইকরণ পরিচালনার জন্য কমান্ড।
একাধিক ডোমেন — উৎপাদনের জন্য একটি সাধারণ দৃশ্যকল্প। অ্যাপ example.com, m.example.com এবং example.org থেকে লিঙ্ক পরিচালনা করতে পারে। প্রতিটি ডোমেনের জন্য সংশ্লিষ্ট সার্ভারে একটি পৃথক assetlinks.json প্রয়োজন। ম্যানিফেস্টে একাধিক Intent Filter যোগ করা হয় — প্রতি ডোমেনে একটি। সমস্ত ডোমেন HTTPS-এর মাধ্যমে অ্যাক্সেসযোগ্য হতে হবে এবং স্বাধীনভাবে যাচাইকরণ পাস করতে হবে।
App Link এবং Jetpack Navigation — আধুনিক Android অ্যাপে App Link পরিচালনার প্রস্তাবিত উপায়। Jetpack Navigation nav_graph.xml-এ বা NavDeepLinkRequest-এর মাধ্যমে ঘোষণামূলক deep link সমর্থন করে। এটি নেভিগেশন সহজ করে: ডেভেলপার বর্ণনা করে যে একটি নির্দিষ্ট URL-এর জন্য কোন স্ক্রিন খোলে, এবং Navigation উপাদান নিজেই Intent পরিচালনা করে এবং নেভিগেশন স্ট্যাক পুনরুদ্ধার করে। Google App Link-এর জন্য Jetpack Navigation ব্যবহার করার পরামর্শ দেয়।
// Jetpack Navigation-এর মাধ্যমে App Link প্রক্রিয়াকরণ
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
handleDeepLink(intent)
}
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
handleDeepLink(intent)
}
private fun handleDeepLink(intent: Intent) {
intent.data?.let { uri ->
navController.handleDeepLink(NavDeepLinkRequest
.Builder
.fromUri(uri)
.build()
)
}
}
}
Google Play Store প্রকাশনার সময় App Link পরীক্ষা করে। যদি ম্যানিফেস্টে autoVerify সহ Intent Filter থাকে কিন্তু assetlinks.json উপলব্ধ না হয় বা ভুল হয়, Google Play সতর্কতা সহ আপডেট প্রত্যাখ্যান করতে পারে। ডেভেলপার কনসোলে (Policy and Programs → App Links) প্রতিটি ডোমেনের যাচাইকরণ অবস্থা প্রদর্শিত হয়। প্রকাশনার আগে সর্বদা অবস্থা পরীক্ষা করুন — আপডেট প্রত্যাখ্যানের পরে এটি ঠিক করা রিলিজ বিলম্বিত করে।
সচরাচর জিজ্ঞাসিত প্রশ্ন
App Link হল Digital Asset Links-এর মাধ্যমে যাচাইকরণ সহ Deep Link। প্রধান পার্থক্য: App Link কাস্টমের পরিবর্তে https স্কিম ব্যবহার করে, নির্বাচন ডায়ালগ দেখায় না এবং Google দ্বারা সূচীভুক্ত হয়। সাধারণ Deep Link Android-এর সমস্ত সংস্করণে কাজ করে, কিন্তু ম্যানুয়াল অ্যাপ নির্বাচন প্রয়োজন।
ফাইলটি HTTPS সার্ভারের মূলে /.well-known/assetlinks.json পথে রাখা হয়। সার্ভারকে Content-Type: application/json ফেরত দিতে হবে। স্বাক্ষর সার্টিফিকেট পরিবর্তন বা নতুন ডোমেন যোগ করার সময় ফাইলটি আপডেট করা উচিত।
মূল কারণ: Intent Filter-এ android:autoVerify="true"-এর অভাব, assetlinks.json HTTPS-এর মাধ্যমে উপলব্ধ না, ভুল SHA256 ফিঙ্গারপ্রিন্ট, ভিন্ন স্বাক্ষর সার্টিফিকেট (debug vs release)। adb shell dumpsync domain_verification-এর মাধ্যমে যাচাইকরণ অবস্থা পরীক্ষা করুন।
না — App Link-এর জন্য অ্যাক্সেসযোগ্য assetlinks.json সহ HTTPS সার্ভার প্রয়োজন। আপনার ডোমেন না থাকলে, ফাইল হোস্ট করতে Firebase Hosting বা GitHub Pages ব্যবহার করুন। বিকল্প: Custom URL Scheme (যাচাইকরণ ছাড়া) বা Firebase Dynamic Links।
না — App Link Android 6.0 (API 23) এবং তার উপরে সমর্থিত। Android 5-এ, android:autoVerify="true" সহ Intent Filter বৈশিষ্ট্যটি উপেক্ষা করে এবং নির্বাচন ডায়ালগ সহ সাধারণ Deep Link হিসাবে কাজ করে। পশ্চাদগামী সামঞ্জস্যের জন্য উভয় প্রক্রিয়া সমর্থন করার পরামর্শ দেওয়া হয়।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন