आपके बनाए गए Firebase Dynamic Links को पाने के लिए, आपको अपने ऐप्लिकेशन में Dynamic Links SDK टूल शामिल करना होगा. साथ ही, जब आपका ऐप्लिकेशन लोड हो, तब FirebaseDynamicLinks.getDynamicLink()
तरीके को कॉल करना होगा, ताकि Dynamic Link में पास किया गया डेटा मिल सके.
Firebase और Dynamic Links SDK टूल सेट अप करना
अगर आपने पहले से ऐसा नहीं किया है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें.
अपने ऐप्लिकेशन को रजिस्टर करते समय, SHA-1 साइनिंग पासकोड डालें. अगर ऐप्लिकेशन लिंक का इस्तेमाल किया जाता है, तो SHA-256 कुंजी भी डालें.
-
अपनी मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल (आम तौर पर
<project>/<app-module>/build.gradle.kts
या<project>/<app-module>/build.gradle
) में, Android के लिए 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:34.0.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 की हर लाइब्रेरी के वर्शन की जानकारी देनी होगी.
ध्यान दें कि अगर आपके ऐप्लिकेशन में 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.0.0' }
- Firebase कंसोल में, Dynamic Links सेक्शन खोलें. अगर आपसे सेवा की शर्तों को स्वीकार करने के लिए कहा जाता है, तो उन्हें स्वीकार करें.
डीप लिंक के लिए इंटेंट फ़िल्टर जोड़ना
सामान्य डीप लिंक की तरह ही, आपको उस गतिविधि में एक नया इंटेंट फ़िल्टर जोड़ना होगा जो आपके ऐप्लिकेशन के लिए डीप लिंक को हैंडल करता है. इंटेंट फ़िल्टर को आपके डोमेन के डीप लिंक को कैप्चर करना चाहिए, क्योंकि अगर आपका ऐप्लिकेशन इंस्टॉल है, तो Dynamic Link आपके डोमेन पर रीडायरेक्ट हो जाएगा. Play Store से ऐप्लिकेशन इंस्टॉल/अपडेट करने और 'जारी रखें' बटन पर टैप करने के बाद, 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); } });
आपको लिंक से लॉन्च की जा सकने वाली हर गतिविधि में getDynamicLink()
को कॉल करना होगा. भले ही, लिंक getIntent().getData()
का इस्तेमाल करके इंटेंट से उपलब्ध हो. getDynamicLink()
को कॉल करने पर, लिंक वापस मिल जाता है और डेटा मिट जाता है. इससे आपका ऐप्लिकेशन, डेटा को सिर्फ़ एक बार प्रोसेस कर पाता है.
आम तौर पर, मुख्य गतिविधि के साथ-साथ लिंक से मैच करने वाले इंटेंट फ़िल्टर से लॉन्च की गई किसी भी गतिविधि में getDynamicLink()
को कॉल किया जाता है.
रिकॉर्ड किए गए डेटा के आंकड़े
Google Analytics में इन इवेंट को अपने-आप ट्रैक किया जा सकता है. साथ ही, इन्हें 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()
को कॉल करें.
ऐप्लिकेशन लिंक का इस्तेमाल करके Dynamic Links मैनेज करना
Android 6.0 (एपीआई लेवल 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
Dynamic Links को अब सीधे आपके ऐप्लिकेशन पर भेज दिया जाएगा. आपको डीप लिंक और अन्य Dynamic Link डेटा मिल पाएगा. इसके लिए, आपको उस गतिविधि में getDynamicLink()
को कॉल करना होगा जिसमें आपने ऐप्लिकेशन लिंक इंटेंट फ़िल्टर जोड़ा है. इसके बारे में डीप लिंक मैनेज करना लेख में बताया गया है.
ध्यान दें: ऐप्लिकेशन लिंक के ज़रिए सीधे ऐप्लिकेशन पर पहुंचने की सुविधा होने की वजह से, डाइनैमिक लिंक के लिए ज़रूरी कम से कम वर्शन का इस्तेमाल नहीं किया जा सकता. इसलिए, ऐप्लिकेशन खुलने के बाद, आपको डाइनैमिक लिंक के कम से कम वर्शन ( getminimumappversion) की तुलना PackageInfo.versionCode से करनी होगी. साथ ही, अगर ज़रूरी हो, तो getUpdateAppIntent का इस्तेमाल करके, उपयोगकर्ता को ऐप्लिकेशन अपग्रेड करने के लिए रीडायरेक्ट करना होगा.