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

আপনার তৈরি করা Firebase ডায়নামিক লিঙ্কগুলি পেতে, আপনাকে অবশ্যই আপনার অ্যাপে ডায়নামিক লিঙ্ক SDK অন্তর্ভুক্ত করতে হবে এবং যখন আপনার অ্যাপ লোড হয় তখন ডায়নামিক লিঙ্কে ডেটা পাস করার জন্য FirebaseDynamicLinks.getDynamicLink() পদ্ধতিতে কল করতে হবে।

  1. যদি আপনি ইতিমধ্যেই না করে থাকেন তাহলে আপনার Android প্রকল্পে Firebase যোগ করুন

    আপনি যখন আপনার অ্যাপটি নিবন্ধন করবেন, তখন আপনার SHA-1 সাইনিং কী নির্দিষ্ট করুন৷ আপনি যদি অ্যাপ লিঙ্কগুলি ব্যবহার করেন তবে আপনার SHA-256 কীও নির্দিষ্ট করুন৷

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

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

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.8.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 লাইব্রেরি সংস্করণ তার নির্ভরতা লাইনে উল্লেখ করতে হবে।

    মনে রাখবেন যে আপনি যদি আপনার অ্যাপে একাধিক ফায়ারবেস লাইব্রেরি ব্যবহার করেন, আমরা দৃঢ়ভাবে লাইব্রেরি সংস্করণগুলি পরিচালনা করতে 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:21.2.0'
        implementation 'com.google.firebase:firebase-analytics:21.6.1'
    }
    
    একটি কোটলিন-নির্দিষ্ট লাইব্রেরি মডিউল খুঁজছেন? অক্টোবর 2023 থেকে শুরু হচ্ছে (Firebase BoM 32.5.0) , Kotlin এবং Java ডেভেলপাররা প্রধান লাইব্রেরি মডিউলের উপর নির্ভর করতে পারে (বিস্তারিত জানতে, এই উদ্যোগ সম্পর্কে প্রায়শই জিজ্ঞাসিত প্রশ্ন দেখুন)।
  3. Firebase কনসোলে , ডায়নামিক লিঙ্ক বিভাগ খুলুন। পরিষেবার শর্তাবলী স্বীকার করুন যদি আপনাকে তা করতে বলা হয়।

প্লেইন ডিপ লিঙ্কগুলির মতো, আপনার অ্যাপের জন্য গভীর লিঙ্কগুলি পরিচালনা করে এমন কার্যকলাপে আপনাকে অবশ্যই একটি নতুন অভিপ্রায় ফিল্টার যোগ করতে হবে। অভিপ্রায় ফিল্টারটি আপনার ডোমেনের গভীর লিঙ্কগুলিকে ধরতে হবে, যেহেতু আপনার অ্যাপ ইনস্টল করা থাকলে ডায়নামিক লিঙ্কটি আপনার ডোমেনে পুনঃনির্দেশ করবে৷ আপনার অ্যাপটি প্লে স্টোর থেকে ইনস্টল/আপডেট হওয়ার পরে এবং চালিয়ে যাওয়া বোতামে একটি ট্যাপ করার পরে ডায়নামিক লিঙ্ক ডেটা পাওয়ার জন্য এটি প্রয়োজনীয়। 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>

ব্যবহারকারীরা যখন স্কিমের একটি গভীর লিঙ্ক সহ একটি ডায়নামিক লিঙ্ক খোলে এবং আপনার নির্দিষ্ট করা হোস্ট, তখন আপনার অ্যাপটি লিঙ্কটি পরিচালনা করার জন্য এই উদ্দেশ্য ফিল্টারের সাথে কার্যকলাপ শুরু করবে।

গভীর লিঙ্কটি পেতে, 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( FirebaseAnalytics.getInstance() কল করার আগে FirebaseDynamicLinks.getDynamicLink() কল করুন।

Android 6.0 (API লেভেল 23) এবং উচ্চতর সংস্করণে, যখন আপনার অ্যাপ ইতিমধ্যেই Android অ্যাপ লিঙ্কগুলি ব্যবহার করে ইনস্টল করা থাকে তখন আপনি সরাসরি ডায়নামিক লিঙ্কগুলি পরিচালনা করতে আপনার অ্যাপ সেট আপ করতে পারেন৷

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

ক্রিয়াকলাপে একটি স্বয়ংক্রিয়-যাচাইকৃত অভিপ্রায় ফিল্টার যোগ করুন যা ফায়ারবেস কনসোলে পাওয়া হিসাবে আপনার প্রকল্পের ডায়নামিক লিঙ্ক ডোমেনে হোস্ট সেট করে ডায়নামিক লিঙ্ক পরিচালনা করবে। 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 অবশ্যই আপনার ডায়নামিক লিঙ্ক ডোমেনে সেট করতে হবে, আপনার ডিপ লিঙ্কের ডোমেনে নয়।

আপনার ম্যানিফেস্টের সমস্ত autoVerify অভিপ্রায় ফিল্টারগুলিকে অবশ্যই নিবন্ধিত হতে হবে যাতে অ্যাপ লিঙ্কগুলি জড়িত থাকে৷ Firebase আপনার ডায়নামিক লিঙ্ক ডোমেনের জন্য এটি স্বয়ংক্রিয়ভাবে পরিচালনা করে, তবে আপনি আপনার ডাইনামিক লিঙ্ক ডোমেনে হোস্ট করা assetlinks.json ফাইলটি খুলে এটি পরীক্ষা করতে পারেন:

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

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

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