Android पर Firebase डाइनैमिक लिंक पाना

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

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

    अपना ऐप्लिकेशन रजिस्टर करते समय, अपनी SHA-1 साइनिंग कुंजी बताएं. अगर आपको ऐप्लिकेशन लिंक, अपनी SHA-256 कुंजी भी बताएं.

  2. आपके मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल में (आम तौर पर <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle), Android के लिए डाइनैमिक लिंक लाइब्रेरी के लिए डिपेंडेंसी जोड़ें. हमारा सुझाव है कि Firebase Android बीओएम लाइब्रेरी के वर्शन को कंट्रोल करने के लिए.

    डाइनैमिक लिंक के साथ बेहतर अनुभव पाने के लिए, हमारा सुझाव है कि Google Analytics चालू करना जोड़ना होगा. साथ ही, अपने ऐप्लिकेशन में Google Analytics के लिए Firebase SDK टूल जोड़ना होगा.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:33.1.2"))
    
        // 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:22.0.2'
    }
    
    क्या आपको Kotlin से जुड़े लाइब्रेरी मॉड्यूल की तलाश है? इतने समय में शुरू होगा अक्टूबर 2023 (Firebase BoM 32.5.0) में, Kotlin और Java डेवलपर, दोनों मुख्य लाइब्रेरी मॉड्यूल पर निर्भर करते हैं (जानकारी के लिए, इस पहल के बारे में अक्सर पूछे जाने वाले सवाल).
  3. Firebase कंसोल में, डाइनैमिक लिंक खोलें सेक्शन में जाएं. अगर आपसे कहा जाए, तो सेवा की शर्तों को स्वीकार करें.

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

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 सेट अप और इस्तेमाल करें:

Android 6.0 (एपीआई लेवल 23) और उसके बाद के वर्शन पर, डाइनैमिक लिंक को मैनेज करने के लिए अपने ऐप्लिकेशन को सेट अप किया जा सकता है जब आपका ऐप्लिकेशन Android ऐप्लिकेशन के लिंक.

पक्का करें कि आपने अपने प्रोजेक्ट में, अपने ऐप्लिकेशन के लिए SHA256 सर्टिफ़िकेट फ़िंगरप्रिंट जोड़ा है Firebase कंसोल पर क्लिक करें. डाइनैमिक लिंक, इनके लिए ऐप्लिकेशन लिंक से जुड़ी वेबसाइट का असोसिएशन सेट अप करेंगे आपके डाइनैमिक लिंक डोमेन पर.

डाइनैमिक लिंक को मैनेज करने वाली गतिविधि में, अपने-आप पुष्टि होने वाला इंटेंट फ़िल्टर जोड़ें. इसके लिए, को इस रूप में होस्ट करें: 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 को आपके डाइनैमिक लिंक के डोमेन पर सेट होना चाहिए, न कि डोमेन पर को भी शामिल करें.

आपके मेनिफ़ेस्ट में मौजूद सभी autoVerify इंटेंट फ़िल्टर, ऐप्लिकेशन के लिए रजिस्टर होने चाहिए दर्शकों की दिलचस्पी से जुड़े लिंक. Firebase इसे आपके डाइनैमिक लिंक डोमेन के लिए अपने-आप मैनेज करता है. हालांकि, इसकी जांच की जा सकती है इसके लिए, अपने डाइनैमिक लिंक डोमेन पर होस्ट की गई assetlinks.json फ़ाइल को खोलें:

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

डाइनैमिक लिंक अब सीधे आपके ऐप्लिकेशन पर भेजे जाएंगे. आपको डीप लिंक और दूसरी जानकारी मिलेगी आपने जिस गतिविधि में ऐप्लिकेशन लिंक जोड़े हैं उसमें getDynamicLink() को कॉल करके डाइनैमिक लिंक का डेटा इंटेंट फ़िल्टर (जैसा कि डीप लिंक मैनेज करना).

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