আপনার তৈরি করা Firebase Dynamic Links পেতে, আপনাকে অবশ্যই আপনার অ্যাপে Dynamic Links SDK অন্তর্ভুক্ত করতে হবে এবং যখন আপনার অ্যাপ লোড হয় তখন Dynamic Link ডেটা পাস করার জন্য FirebaseDynamicLinks.getDynamicLink()
পদ্ধতিতে কল করুন।
Firebase এবং Dynamic Links SDK সেট আপ করুন
যদি আপনি ইতিমধ্যেই না করে থাকেন তাহলে আপনার Android প্রকল্পে 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:33.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 লাইব্রেরির সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করবে।
একটি কোটলিন-নির্দিষ্ট লাইব্রেরি মডিউল খুঁজছেন? অক্টোবর 2023 থেকে শুরু হচ্ছে ( Firebase BoM 32.5.0) , Kotlin এবং Java ডেভেলপাররা প্রধান লাইব্রেরি মডিউলের উপর নির্ভর করতে পারে (বিশদ বিবরণের জন্য, এই উদ্যোগ সম্পর্কে প্রায়শই জিজ্ঞাসিত প্রশ্ন দেখুন)।(বিকল্প) BoM ব্যবহার না করে Firebase লাইব্রেরি নির্ভরতা যোগ করুন
আপনি যদি Firebase BoM ব্যবহার না করা বেছে নেন, তাহলে আপনাকে অবশ্যই প্রতিটি 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:22.1.2' }
- Firebase কনসোলে , Dynamic Links বিভাগ খুলুন। পরিষেবার শর্তাবলী স্বীকার করুন যদি আপনাকে তা করতে বলা হয়।
গভীর লিঙ্কের জন্য একটি অভিপ্রায় ফিল্টার যোগ করুন
প্লেইন ডিপ লিঙ্কগুলির মতো, আপনার অ্যাপের জন্য গভীর লিঙ্কগুলি পরিচালনা করে এমন কার্যকলাপে আপনাকে অবশ্যই একটি নতুন অভিপ্রায় ফিল্টার যোগ করতে হবে। অভিপ্রায় ফিল্টারটি আপনার ডোমেনের গভীর লিঙ্কগুলিকে ধরতে হবে, যেহেতু আপনার অ্যাপ ইনস্টল করা থাকলে Dynamic Link আপনার ডোমেনে পুনঃনির্দেশ করবে৷ আপনার অ্যাপটি প্লে স্টোর থেকে ইনস্টল/আপডেট হওয়ার পরে এবং চালিয়ে যাওয়া বোতামে একটি ট্যাপ করার পরে 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+KTX
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
Gradle প্লাগইন দ্বারা স্বয়ংক্রিয়ভাবে যোগ করা হয়। - আপনার অ্যাপে
google-services.json
কনফিগারেশন ফাইলটি অন্তর্ভুক্ত করুন । - FirebaseDynamicLinks.getDynamicLink
FirebaseDynamicLinks.getDynamicLink()
কল করার আগেFirebaseAnalytics.getInstance()
এ কল করুন।
অ্যাপ লিংক ব্যবহার করে Dynamic Links পরিচালনা করা
Android 6.0 (API লেভেল 23) এবং উচ্চতর সংস্করণে, যখন আপনার অ্যাপ ইতিমধ্যেই Android অ্যাপ লিঙ্কগুলি ব্যবহার করে ইনস্টল করা থাকে তখন আপনি সরাসরি Dynamic Links পরিচালনা করতে আপনার অ্যাপ সেট আপ করতে পারেন৷
আপনি Firebase কনসোলে আপনার প্রোজেক্টে আপনার অ্যাপের জন্য SHA256 শংসাপত্রের ফিঙ্গারপ্রিন্ট যোগ করেছেন তা নিশ্চিত করুন। Dynamic Links আপনার Dynamic 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 ডোমেনে সেট করতে হবে, আপনার ডিপ লিঙ্কের ডোমেনে নয়।
আপনার ম্যানিফেস্টের সমস্ত autoVerify
অভিপ্রায় ফিল্টারগুলিকে অবশ্যই নিবন্ধিত হতে হবে যাতে অ্যাপ লিঙ্কগুলি জড়িত থাকে৷ Firebase আপনার Dynamic Links ডোমেনের জন্য এটি স্বয়ংক্রিয়ভাবে পরিচালনা করে, তবে আপনি আপনার Dynamic Links ডোমেনে হোস্ট করা assetlinks.json
ফাইলটি খুলে এটি পরীক্ষা করতে পারেন:
https://YOUR_DOMAIN/.well-known/assetlinks.jsonআপনার সমস্ত Firebase অ্যাপের প্যাকেজের নাম অন্তর্ভুক্ত করা উচিত।
Dynamic Links এখন সরাসরি আপনার অ্যাপে পাঠানো হবে। আপনি যে কার্যকলাপে অ্যাপ লিঙ্কের অভিপ্রায় ফিল্টার যোগ করেছেন তাতে getDynamicLink()
কল করে ডিপ লিঙ্ক এবং অন্যান্য Dynamic Link ডেটা পেতে সক্ষম হবেন (যেমনটি হ্যান্ডেল ডিপ লিঙ্কে বর্ণিত হয়েছে)।
দ্রষ্টব্য: যেহেতু অ্যাপ লিঙ্কের মাধ্যমে আহ্বান করা ব্যবহারকারীকে সরাসরি অ্যাপে নিয়ে যায়, তাই একটি ডায়নামিক লিঙ্ক প্রয়োজনীয় ন্যূনতম সংস্করণকে সম্মান করতে পারে না। তাই একবার অ্যাপটি খোলা হলে, আপনাকে PackageInfo.versionCode- এর সাথে ডাইনামিক লিঙ্কের ন্যূনতম সংস্করণ ( getminimumappversion ) তুলনা করতে হবে এবং getUpdateAppIntent ব্যবহার করে প্রয়োজনে অ্যাপটি আপগ্রেড করতে ব্যবহারকারীকে পুনঃনির্দেশ করতে হবে।