आपके द्वारा बनाए गए Firebase डायनामिक लिंक प्राप्त करने के लिए, आपको अपने ऐप में डायनामिक लिंक SDK शामिल करना होगा और जब आपका ऐप लोड होता है तो डायनामिक लिंक में डेटा पास करने के लिए FirebaseDynamicLinks.getDynamicLink()
विधि को कॉल करें।
फायरबेस और डायनेमिक लिंक एसडीके सेट करें
यदि आपने पहले से ऐसा नहीं किया है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें ।
जब आप अपना ऐप पंजीकृत करते हैं, तो अपनी SHA-1 साइनिंग कुंजी निर्दिष्ट करें। यदि आप ऐप लिंक का उपयोग करते हैं, तो अपनी SHA-256 कुंजी भी निर्दिष्ट करें।
फायरबेस एंड्रॉइड बीओएम का उपयोग करके, अपने मॉड्यूल (ऐप-लेवल) ग्रैडल फ़ाइल (आमतौर पर
app/build.gradle
) में डायनामिक लिंक एंड्रॉइड लाइब्रेरी के लिए निर्भरता की घोषणा करें।डायनामिक लिंक के साथ एक इष्टतम अनुभव के लिए, हम अनुशंसा करते हैं कि आप अपने फ़ायरबेस प्रोजेक्ट में Google Analytics को सक्षम करें और अपने ऐप में Google Analytics के लिए फ़ायरबेस एसडीके जोड़ें।
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:30.1.0') // Declare 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 . का उपयोग किए बिना फायरबेस लाइब्रेरी निर्भरता घोषित करें
यदि आप फायरबेस बीओएम का उपयोग नहीं करना चुनते हैं, तो आपको प्रत्येक फायरबेस लाइब्रेरी संस्करण को उसकी निर्भरता रेखा में निर्दिष्ट करना होगा।
ध्यान दें कि यदि आप अपने ऐप में एकाधिक फायरबेस लाइब्रेरी का उपयोग करते हैं, तो हम लाइब्रेरी संस्करणों को प्रबंधित करने के लिए BoM का उपयोग करने की अत्यधिक अनुशंसा करते हैं, जो सुनिश्चित करता है कि सभी संस्करण संगत हैं।
dependencies { // Declare 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.1' implementation 'com.google.firebase:firebase-analytics:21.0.0' }
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:30.1.0') // Declare 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 . का उपयोग किए बिना फायरबेस लाइब्रेरी निर्भरता घोषित करें
यदि आप फायरबेस बीओएम का उपयोग नहीं करना चुनते हैं, तो आपको प्रत्येक फायरबेस लाइब्रेरी संस्करण को उसकी निर्भरता रेखा में निर्दिष्ट करना होगा।
ध्यान दें कि यदि आप अपने ऐप में एकाधिक फायरबेस लाइब्रेरी का उपयोग करते हैं, तो हम लाइब्रेरी संस्करणों को प्रबंधित करने के लिए BoM का उपयोग करने की अत्यधिक अनुशंसा करते हैं, जो सुनिश्चित करता है कि सभी संस्करण संगत हैं।
dependencies { // Declare 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.1' implementation 'com.google.firebase:firebase-analytics-ktx:21.0.0' }
- फायरबेस कंसोल में, डायनामिक लिंक अनुभाग खोलें। यदि आपको ऐसा करने के लिए कहा जाए तो सेवा की शर्तें स्वीकार करें।
डीप लिंक के लिए इंटेंट फ़िल्टर जोड़ें
सादे डीप लिंक की तरह, आपको उस गतिविधि में एक नया इंटेंट फ़िल्टर जोड़ना होगा जो आपके ऐप के लिए डीप लिंक को हैंडल करता है। इंटेंट फ़िल्टर आपके डोमेन के डीप लिंक को पकड़ लेगा, क्योंकि यदि आपका ऐप इंस्टॉल है तो डायनामिक लिंक आपके डोमेन पर रीडायरेक्ट करेगा। 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 -> // 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 का उपयोग करके उपयोगकर्ता को ऐप को अपग्रेड करने के लिए रीडायरेक्ट करना होगा ।
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2022-06-24 UTC.
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"वह जानकारी मौजूद नहीं है जो मुझे चाहिए" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"बहुत मुश्किल है / बहुत सारे चरण हैं" },{ "type": "thumb-down", "id": "outOfDate", "label":"पुराना" },{ "type": "thumb-down", "id": "translationIssue", "label":"अनुवाद से जुड़ी समस्या" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"सैंपल / कोड से जुड़ी समस्या" },{ "type": "thumb-down", "id": "otherDown", "label":"अन्य" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"समझने में आसान है" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"मेरी समस्या हल हो गई" },{ "type": "thumb-up", "id": "otherUp", "label":"अन्य" }]