Join us in person and online for Firebase Summit on October 18, 2022. Learn how Firebase can help you accelerate app development, release your app with confidence, and scale with ease. Register now

Android पर Firebase डायनामिक लिंक प्राप्त करें

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

आपके द्वारा बनाए गए Firebase डायनामिक लिंक प्राप्त करने के लिए, आपको अपने ऐप में डायनामिक लिंक SDK शामिल करना होगा और जब आपका ऐप लोड होता है तो डायनामिक लिंक में डेटा पास करने के लिए FirebaseDynamicLinks.getDynamicLink() विधि को कॉल करें।

  1. यदि आपने पहले से ऐसा नहीं किया है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें

    जब आप अपना ऐप पंजीकृत करते हैं, तो अपनी SHA-1 साइनिंग कुंजी निर्दिष्ट करें। यदि आप ऐप लिंक का उपयोग करते हैं, तो अपनी SHA-256 कुंजी भी निर्दिष्ट करें।

  2. अपने मॉड्यूल (ऐप-स्तर) ग्रेड फ़ाइल (आमतौर पर <project>/<app-module>/build.gradle ) में, डायनामिक लिंक एंड्रॉइड लाइब्रेरी के लिए निर्भरता जोड़ें। हम लाइब्रेरी वर्जनिंग को नियंत्रित करने के लिए फायरबेस एंड्रॉइड बीओएम का उपयोग करने की सलाह देते हैं।

    डायनामिक लिंक के साथ एक इष्टतम अनुभव के लिए, हम अनुशंसा करते हैं कि आप अपने फ़ायरबेस प्रोजेक्ट में Google Analytics को सक्षम करें और अपने ऐप में Google Analytics के लिए फ़ायरबेस एसडीके जोड़ें।

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:30.5.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'
    }
    

    फायरबेस एंड्रॉइड बीओएम का उपयोग करके, आपका ऐप हमेशा फायरबेस एंड्रॉइड लाइब्रेरी के संगत संस्करणों का उपयोग करेगा।

    (वैकल्पिक) 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.0.2'
        implementation 'com.google.firebase:firebase-analytics:21.1.1'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:30.5.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-ktx'
        implementation 'com.google.firebase:firebase-analytics-ktx'
    }
    

    फायरबेस एंड्रॉइड बीओएम का उपयोग करके, आपका ऐप हमेशा फायरबेस एंड्रॉइड लाइब्रेरी के संगत संस्करणों का उपयोग करेगा।

    (वैकल्पिक) 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-ktx:21.0.2'
        implementation 'com.google.firebase:firebase-analytics-ktx:21.1.1'
    }
    
  3. फायरबेस कंसोल में, डायनामिक लिंक अनुभाग खोलें। यदि आपको ऐसा करने के लिए कहा जाए तो सेवा की शर्तें स्वीकार करें।

सादे डीप लिंक की तरह, आपको उस गतिविधि में एक नया इंटेंट फ़िल्टर जोड़ना होगा जो आपके ऐप के लिए डीप लिंक को हैंडल करता है। इंटेंट फ़िल्टर आपके डोमेन के डीप लिंक को पकड़ लेगा, क्योंकि यदि आपका ऐप इंस्टॉल है तो डायनामिक लिंक आपके डोमेन पर रीडायरेक्ट करेगा। Play Store से डायनामिक लिंक डेटा इंस्टॉल/अपडेट होने के बाद यह आपके ऐप के लिए आवश्यक है और कंटिन्यू बटन पर एक टैप करें। 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() विधि को कॉल करें:

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);
            }
        });

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) }

लिंक द्वारा लॉन्च की जा सकने वाली प्रत्येक गतिविधि में आपको 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 कॉन्फ़िग फ़ाइल शामिल करें
    • FirebaseAnalytics.getInstance() FirebaseDynamicLinks.getDynamicLink() कॉल करें।

Android 6.0 (API स्तर 23) और उच्चतर पर, जब आपका ऐप Android App Links का उपयोग करके पहले से ही इंस्टॉल हो जाता है, तो आप सीधे डायनेमिक लिंक को संभालने के लिए अपना ऐप सेट कर सकते हैं।

पक्का करें कि आपने 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 .json फ़ाइल खोलकर इसकी जांच कर सकते हैं:

https://YOUR_DOMAIN/.well-known/assetlinks.json
आपके सभी Firebase ऐप्स के पैकेज नाम शामिल किए जाने चाहिए।

डायनामिक लिंक अब सीधे आपके ऐप पर भेजे जाएंगे। आपने जिस गतिविधि में ऐप लिंक इंटेंट फ़िल्टर जोड़ा है, getDynamicLink() को कॉल करके आप डीप लिंक और अन्य डायनामिक लिंक डेटा प्राप्त करने में सक्षम होंगे (जैसा कि हैंडल डीप लिंक में वर्णित है)।

नोट: चूंकि ऐप लिंक के माध्यम से इनवॉइस करने से उपयोगकर्ता सीधे ऐप पर पहुंच जाता है, इसलिए डायनामिक लिंक आवश्यक न्यूनतम संस्करण का सम्मान नहीं कर सकता है। इसलिए एक बार ऐप खोलने के बाद, आपको पैकेजइन्फो.वर्जन कोड के खिलाफ डायनामिक लिंक के न्यूनतम संस्करण ( getminimumappversion ) की तुलना करने की आवश्यकता है और यदि आवश्यक हो तो getUpdateAppIntent का उपयोग करके उपयोगकर्ता को ऐप को अपग्रेड करने के लिए रीडायरेक्ट करना होगा