অ্যান্ড্রয়েডে ফায়ারবেস ডায়নামিক লিঙ্কগুলি পান৷

আপনার তৈরি করা Firebase Dynamic Links পেতে হলে, আপনাকে অবশ্যই আপনার অ্যাপে Dynamic Links SDK অন্তর্ভুক্ত করতে হবে এবং অ্যাপ লোড হওয়ার সময় Dynamic Link এ পাঠানো ডেটা পাওয়ার জন্য FirebaseDynamicLinks.getDynamicLink() মেথডটি কল করতে হবে।

  1. যদি আগে থেকে না করে থাকেন, তাহলে আপনার অ্যান্ড্রয়েড প্রজেক্টে ফায়ারবেস যোগ করুন

    আপনার অ্যাপ নিবন্ধন করার সময়, আপনার SHA-1 সাইনিং কী উল্লেখ করুন। আপনি যদি অ্যাপ লিঙ্ক ব্যবহার করেন, তাহলে আপনার SHA-256 কী-ও উল্লেখ করুন।

  2. আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত <project>/<app-module>/build.gradle.kts অথবা <project>/<app-module>/build.gradle ), অ্যান্ড্রয়েডের জন্য Dynamic Links লাইব্রেরির ডিপেন্ডেন্সি যোগ করুন। লাইব্রেরি ভার্সনিং নিয়ন্ত্রণের জন্য আমরা Firebase Android BoM ব্যবহার করার পরামর্শ দিই।

    Dynamic Links এর সর্বোত্তম অভিজ্ঞতার জন্য, আমরা আপনার ফায়ারবেস প্রজেক্টে Google Analytics সক্রিয় করার এবং আপনার অ্যাপে গুগল অ্যানালিটিক্স-এর জন্য ফায়ারবেস এসডিকে যোগ করার পরামর্শ দিই।

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:34.11.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 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.2.0'
    }
  3. 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);
            }
        });

লিঙ্কটি getIntent().getData() ব্যবহার করে ইন্টেন্ট থেকে পাওয়া গেলেও, লিঙ্কটির মাধ্যমে চালু হতে পারে এমন প্রতিটি অ্যাক্টিভিটিতে আপনাকে অবশ্যই getDynamicLink() কল করতে হবে। 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 সেট আপ করুন এবং ব্যবহার করুন:

অ্যান্ড্রয়েড ৬.০ (এপিআই লেভেল ২৩) এবং এর পরবর্তী সংস্করণগুলোতে, আপনার অ্যাপটি ইনস্টল করা থাকা অবস্থাতেই অ্যান্ড্রয়েড অ্যাপ লিঙ্কস ব্যবহার করে সরাসরি Dynamic Links পরিচালনা করার জন্য আপনি অ্যাপ সেট আপ করতে পারেন।

নিশ্চিত করুন যে আপনি Firebase কনসোলে আপনার প্রোজেক্টে আপনার অ্যাপের জন্য SHA256 সার্টিফিকেট ফিঙ্গারপ্রিন্ট যোগ করেছেন। Dynamic Links আপনার Dynamic Links ডোমেনের জন্য অ্যাপ লিঙ্কস ওয়েবসাইট অ্যাসোসিয়েশন সেট আপ করার কাজটি করবে।

যে অ্যাক্টিভিটিটি Dynamic Link পরিচালনা করবে, তাতে একটি অটো-ভেরিফাইড ইন্টেন্ট ফিল্টার যোগ করুন এবং Firebase কনসোলে থাকা আপনার প্রোজেক্টের Dynamic Links ডোমেইনকে হোস্ট হিসেবে সেট করুন। 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 ইন্টেন্ট ফিল্টার অবশ্যই রেজিস্টার করা থাকতে হবে। ফায়ারবেস আপনার Dynamic Links ডোমেইনগুলোর জন্য এটি স্বয়ংক্রিয়ভাবে করে থাকে, কিন্তু আপনি আপনার Dynamic Links ডোমেইনে হোস্ট করা assetlinks.json ফাইলটি খুলে এটি যাচাই করতে পারেন:

https://YOUR_DOMAIN/.well-known/assetlinks.json
আপনার সমস্ত ফায়ারবেস অ্যাপের প্যাকেজ নাম অন্তর্ভুক্ত করা উচিত।

Dynamic Links এখন সরাসরি আপনার অ্যাপে পাঠানো হবে। আপনি যে অ্যাক্টিভিটিতে অ্যাপ লিঙ্কস ইন্টেন্ট ফিল্টারটি যোগ করেছেন, সেখানে getDynamicLink() কল করে ডিপ লিঙ্ক এবং অন্যান্য Dynamic Link ডেটা পেতে পারবেন (যেমনটি "ডিপ লিঙ্ক পরিচালনা করুন" অংশে বর্ণনা করা হয়েছে)।

দ্রষ্টব্য: যেহেতু অ্যাপ লিঙ্কের মাধ্যমে কল করলে ব্যবহারকারীকে সরাসরি অ্যাপে নিয়ে যাওয়া হয়, তাই একটি ডাইনামিক লিঙ্ক প্রয়োজনীয় ন্যূনতম সংস্করণটি অনুসরণ করতে পারে না। সুতরাং, অ্যাপটি খোলার পরে, আপনাকে ডাইনামিক লিঙ্কের ন্যূনতম সংস্করণ ( getminimumappversion ) PackageInfo.versionCode-এর সাথে তুলনা করতে হবে এবং প্রয়োজনে getUpdateAppIntent ব্যবহার করে ব্যবহারকারীকে অ্যাপটি আপগ্রেড করার জন্য নির্দেশ দিতে হবে।