আপনার তৈরি করা Firebase Dynamic Links পেতে, আপনার অ্যাপে Dynamic Links SDK অন্তর্ভুক্ত করতে হবে এবং Dynamic Link এ ডেটা পাস করার জন্য আপনার অ্যাপ লোড হওয়ার সময় FirebaseDynamicLinks.getDynamicLink() পদ্ধতিতে কল করতে হবে।
Firebase এবং Dynamic Links SDK সেট আপ করুন
যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে আপনার অ্যান্ড্রয়েড প্রজেক্টে Firebase যোগ করুন ।
আপনার অ্যাপটি নিবন্ধন করার সময়, আপনার SHA-1 সাইনিং কীটি নির্দিষ্ট করুন। আপনি যদি অ্যাপ লিঙ্ক ব্যবহার করেন, তাহলে আপনার SHA-256 কীটিও নির্দিষ্ট করুন।
আপনার মডিউল (অ্যাপ-লেভেল) গ্র্যাডেল ফাইলে (সাধারণত
<project>/<app-module>/build.gradle.ktsঅথবা<project>/<app-module>/build.gradle), অ্যান্ড্রয়েডের জন্য Dynamic Links লাইব্রেরির জন্য নির্ভরতা যোগ করুন। লাইব্রেরি সংস্করণ নিয়ন্ত্রণ করতে আমরা Firebase Android BoM ব্যবহার করার পরামর্শ দিই।Dynamic Links এর সর্বোত্তম অভিজ্ঞতার জন্য, আমরা আপনার Firebase প্রকল্পে Google Analytics সক্ষম করার এবং আপনার অ্যাপে Google Analytics এর জন্য Firebase SDK যোগ করার পরামর্শ দিচ্ছি।
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.4.0")) // Add the dependencies for the Dynamic Links and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links' implementation 'com.google.firebase:firebase-analytics' }
Firebase Android BoM ব্যবহার করে, আপনার অ্যাপ সর্বদা Firebase Android লাইব্রেরির সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করবে।
(বিকল্প) BoM ব্যবহার না করেই Firebase লাইব্রেরি নির্ভরতা যোগ করুন
যদি আপনি Firebase BoM ব্যবহার না করার সিদ্ধান্ত নেন, তাহলে আপনাকে প্রতিটি Firebase লাইব্রেরি সংস্করণ তার নির্ভরতা লাইনে নির্দিষ্ট করতে হবে।
মনে রাখবেন যে আপনি যদি আপনার অ্যাপে একাধিক Firebase লাইব্রেরি ব্যবহার করেন, তাহলে আমরা দৃঢ়ভাবে লাইব্রেরি সংস্করণগুলি পরিচালনা করার জন্য BoM ব্যবহার করার পরামর্শ দিচ্ছি, যা নিশ্চিত করে যে সমস্ত সংস্করণ সামঞ্জস্যপূর্ণ।
dependencies { // Add the dependencies for the Dynamic Links and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation 'com.google.firebase:firebase-dynamic-links:22.1.0' implementation 'com.google.firebase:firebase-analytics:23.0.0' }
- Firebase কনসোলে , Dynamic Links বিভাগটি খুলুন। যদি আপনাকে অনুরোধ করা হয় তবে পরিষেবার শর্তাবলী গ্রহণ করুন।
ডিপ লিঙ্কের জন্য একটি ইন্টেন্ট ফিল্টার যোগ করুন
প্লেইন ডিপ লিঙ্কের মতো, আপনার অ্যাপের জন্য ডিপ লিঙ্ক পরিচালনা করে এমন অ্যাক্টিভিটিতে আপনাকে একটি নতুন ইন্টেন্ট ফিল্টার যুক্ত করতে হবে। ইন্টেন্ট ফিল্টারটি আপনার ডোমেনের ডিপ লিঙ্কগুলি ধরবে, কারণ আপনার অ্যাপটি ইনস্টল করা থাকলে Dynamic Link আপনার ডোমেনে পুনঃনির্দেশিত হবে। প্লে স্টোর থেকে ইনস্টল/আপডেট করার পরে এবং Continue বোতামে একবার ট্যাপ করার পরে আপনার অ্যাপটি Dynamic Link ডেটা পেতে এটি প্রয়োজন। AndroidManifest.xml এ:
<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:host="example.com" android:scheme="https"/> </intent-filter>
যখন ব্যবহারকারীরা আপনার নির্দিষ্ট স্কিম এবং হোস্টের একটি গভীর লিঙ্ক সহ একটি Dynamic Link খোলেন, তখন আপনার অ্যাপটি লিঙ্কটি পরিচালনা করার জন্য এই ইন্টেন্ট ফিল্টার দিয়ে কার্যকলাপ শুরু করবে।
ডিপ লিঙ্কগুলি পরিচালনা করুন
ডিপ লিঙ্কটি পেতে, getDynamicLink() পদ্ধতিতে কল করুন:
Kotlin
Firebase.dynamicLinks .getDynamicLink(intent) .addOnSuccessListener(this) { pendingDynamicLinkData: PendingDynamicLinkData? -> // Get deep link from result (may be null if no link is found) var deepLink: Uri? = null if (pendingDynamicLinkData != null) { deepLink = pendingDynamicLinkData.link } // Handle the deep link. For example, open the linked // content, or apply promotional credit to the user's // account. // ... } .addOnFailureListener(this) { e -> Log.w(TAG, "getDynamicLink:onFailure", e) }
Java
FirebaseDynamicLinks.getInstance() .getDynamicLink(getIntent()) .addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() { @Override public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) { // Get deep link from result (may be null if no link is found) Uri deepLink = null; if (pendingDynamicLinkData != null) { deepLink = pendingDynamicLinkData.getLink(); } // Handle the deep link. For example, open the linked // content, or apply promotional credit to the user's // account. // ... // ... } }) .addOnFailureListener(this, new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Log.w(TAG, "getDynamicLink:onFailure", e); } });
লিঙ্কটি দ্বারা চালু হতে পারে এমন প্রতিটি কার্যকলাপে আপনাকে getDynamicLink() কল করতে হবে, যদিও লিঙ্কটি getIntent().getData() ব্যবহার করে ইন্টেন্ট থেকে পাওয়া যেতে পারে। getDynamicLink() কল করলে লিঙ্কটি পুনরুদ্ধার করা হয় এবং সেই ডেটা সাফ করা হয় যাতে এটি আপনার অ্যাপ দ্বারা শুধুমাত্র একবার প্রক্রিয়া করা যায়।
আপনি সাধারণত মূল কার্যকলাপে getDynamicLink() কল করেন, সেইসাথে লিঙ্কের সাথে মেলে এমন ইন্টেন্ট ফিল্টার দ্বারা চালু করা যেকোনো কার্যকলাপেও।
রেকর্ড বিশ্লেষণ
নিম্নলিখিত ইভেন্টগুলি স্বয়ংক্রিয়ভাবে Google Analytics এ ট্র্যাক করা যেতে পারে এবং Firebase কনসোলে দেখানো যেতে পারে।
-
dynamic_link_app_open -
dynamic_link_first_open -
dynamic_link_app_update
এই ইভেন্টগুলি নিবন্ধন করার জন্য, ডিপ লিঙ্কটি পুনরুদ্ধার করার আগে আপনাকে Google Analytics কনফিগার করতে হবে। নিম্নলিখিত শর্তগুলি পূরণ হয়েছে কিনা তা পরীক্ষা করুন:
- আপনার অ্যাপ এন্ট্রি পয়েন্টগুলিতে
FirebaseDynamicLinks.getDynamicLink()কল করুন: - লঞ্চার কার্যকলাপ। যেমন:
action="android.intent.action.MAIN",category="android.intent.category.LAUNCHER". - অ্যাক্টিভিটি এন্ট্রি পয়েন্ট। যেমন:
onStart(),onCreate()। - ডিপ লিঙ্ক কার্যক্রম।
- Google Analytics সেট আপ করুন এবং ব্যবহার করুন:
- Google Analytics নির্ভরতা অন্তর্ভুক্ত করুন। এটি সাধারণত
google-servicesগ্রেডল প্লাগইন দ্বারা স্বয়ংক্রিয়ভাবে যুক্ত হয়। - আপনার অ্যাপে
google-services.jsonকনফিগারেশন ফাইলটি অন্তর্ভুক্ত করুন । - FirebaseDynamicLinks.getDynamicLink
FirebaseDynamicLinks.getDynamicLink()কল করার আগেFirebaseAnalytics.getInstance()কল করুন।
অ্যাপ লিঙ্ক ব্যবহার করে Dynamic Links পরিচালনা করা
অ্যান্ড্রয়েড ৬.০ (এপিআই লেভেল ২৩) এবং তার উচ্চতর সংস্করণে, আপনি অ্যান্ড্রয়েড অ্যাপ লিংক ব্যবহার করে আপনার অ্যাপটি ইতিমধ্যেই ইনস্টল থাকা অবস্থায় Dynamic Links সরাসরি পরিচালনা করার জন্য সেট আপ করতে পারেন।
নিশ্চিত করুন যে আপনি Firebase কনসোলে আপনার প্রোজেক্টে আপনার অ্যাপের জন্য SHA256 সার্টিফিকেট ফিঙ্গারপ্রিন্ট যোগ করেছেন। Dynamic Links আপনার Dynamic Links ডোমেনের জন্য App Links ওয়েবসাইট অ্যাসোসিয়েশন সেট আপ করবে।
অ্যাক্টিভিটিতে একটি অটো-ভেরিফাইড ইন্টেন্ট ফিল্টার যোগ করুন যা Dynamic Link পরিচালনা করবে, হোস্টটিকে আপনার প্রোজেক্টের Dynamic Links ডোমেনে সেট করবে যেমনটি Firebase কনসোলে পাওয়া যায় । AndroidManifest.xml এ:
<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:host="example.com/link" android:scheme="http"/>
<data android:host="example.com/link" android:scheme="https"/>
</intent-filter> মনে রাখবেন যে android:host আপনার Dynamic Links ডোমেনে সেট করা উচিত, আপনার deep link এর ডোমেনে নয়।
অ্যাপ লিঙ্কগুলি সংযুক্ত করার জন্য আপনার ম্যানিফেস্টে থাকা সমস্ত autoVerify ইন্টেন্ট ফিল্টারগুলি অবশ্যই নিবন্ধিত হতে হবে। আপনার Dynamic Links ডোমেনগুলির জন্য ফায়ারবেস এটি স্বয়ংক্রিয়ভাবে পরিচালনা করে, তবে আপনি আপনার Dynamic Links ডোমেনে হোস্ট করা assetlinks.json ফাইলটি খুলে এটি পরীক্ষা করতে পারেন:
https://YOUR_DOMAIN/.well-known/assetlinks.json
এখন Dynamic Links সরাসরি আপনার অ্যাপে পাঠানো হবে। আপনি যে অ্যাক্টিভিটিতে অ্যাপ লিংকস ইন্টেন্ট ফিল্টার যোগ করেছেন (যেমন Handle deep links এ বর্ণিত আছে) getDynamicLink() কল করে ডিপ লিংক এবং অন্যান্য Dynamic Link ডেটা পেতে সক্ষম হবেন।
দ্রষ্টব্য: যেহেতু অ্যাপ লিংক ব্যবহার করলে ব্যবহারকারী সরাসরি অ্যাপে চলে যায়, তাই ডাইনামিক লিংক প্রয়োজনীয় ন্যূনতম সংস্করণটি পূরণ করতে পারে না। তাই অ্যাপটি খোলার পরে, আপনাকে ডাইনামিক লিংক এর ন্যূনতম সংস্করণ ( getminimumappversion ) কে PackageInfo.versionCode এর সাথে তুলনা করতে হবে এবং প্রয়োজনে getUpdateAppIntent ব্যবহার করে অ্যাপটি আপগ্রেড করার জন্য ব্যবহারকারীকে পুনঃনির্দেশিত করতে হবে।