आपके द्वारा बनाए गए फायरबेस डायनामिक लिंक प्राप्त करने के लिए, आपको अपने ऐप में डायनामिक लिंक एसडीके शामिल करना होगा और जब आपका ऐप डायनामिक लिंक में डेटा पास करने के लिए लोड होता है तो FirebaseDynamicLinks.getDynamicLink()
विधि को कॉल करना होगा।
फायरबेस और डायनेमिक लिंक एसडीके सेट करें
यदि आपने पहले से नहीं किया है, तो अपने एंड्रॉइड प्रोजेक्ट में फायरबेस जोड़ें ।
जब आप अपना ऐप पंजीकृत करते हैं, तो अपनी SHA-1 हस्ताक्षर कुंजी निर्दिष्ट करें। यदि आप ऐप लिंक का उपयोग करते हैं, तो अपनी SHA-256 कुंजी भी निर्दिष्ट करें।
अपने मॉड्यूल (ऐप-स्तर) ग्रैडल फ़ाइल में (आमतौर पर
<project>/<app-module>/build.gradle.kts
या<project>/<app-module>/build.gradle
), डायनेमिक लिंक के लिए निर्भरता जोड़ें एंड्रॉइड लाइब्रेरी. हम लाइब्रेरी वर्जनिंग को नियंत्रित करने के लिए फायरबेस एंड्रॉइड BoM का उपयोग करने की सलाह देते हैं।डायनेमिक लिंक के साथ इष्टतम अनुभव के लिए, हम आपके फायरबेस प्रोजेक्ट में Google Analytics को सक्षम करने और अपने ऐप में Google Analytics के लिए फायरबेस एसडीके जोड़ने की सलाह देते हैं।
Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // 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 का उपयोग किए बिना फायरबेस लाइब्रेरी निर्भरताएँ जोड़ें
यदि आप फायरबेस बीओएम का उपयोग नहीं करना चुनते हैं, तो आपको प्रत्येक फायरबेस लाइब्रेरी संस्करण को उसकी निर्भरता पंक्ति में निर्दिष्ट करना होगा।
ध्यान दें कि यदि आप अपने ऐप में एकाधिक फायरबेस लाइब्रेरी का उपयोग करते हैं, तो हम लाइब्रेरी संस्करणों को प्रबंधित करने के लिए 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.1.0' implementation 'com.google.firebase:firebase-analytics-ktx:21.3.0' }
Java
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:32.3.1")) // 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 का उपयोग किए बिना फायरबेस लाइब्रेरी निर्भरताएँ जोड़ें
यदि आप फायरबेस बीओएम का उपयोग नहीं करना चुनते हैं, तो आपको प्रत्येक फायरबेस लाइब्रेरी संस्करण को उसकी निर्भरता पंक्ति में निर्दिष्ट करना होगा।
ध्यान दें कि यदि आप अपने ऐप में एकाधिक फायरबेस लाइब्रेरी का उपयोग करते हैं, तो हम लाइब्रेरी संस्करणों को प्रबंधित करने के लिए 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.1.0' implementation 'com.google.firebase:firebase-analytics:21.3.0' }
- फायरबेस कंसोल में, डायनेमिक लिंक अनुभाग खोलें। यदि आपको ऐसा करने के लिए कहा जाए तो सेवा की शर्तों को स्वीकार करें।
डीप लिंक के लिए एक आशय फ़िल्टर जोड़ें
सादे डीप लिंक की तरह, आपको गतिविधि में एक नया आशय फ़िल्टर जोड़ना होगा जो आपके ऐप के लिए डीप लिंक को संभालता है। इंटेंट फ़िल्टर को आपके डोमेन के डीप लिंक को पकड़ना चाहिए, क्योंकि यदि आपका ऐप इंस्टॉल है तो डायनामिक लिंक आपके डोमेन पर रीडायरेक्ट करेगा। प्ले स्टोर से इंस्टॉल/अपडेट होने और जारी रखें बटन पर टैप करने के बाद आपके ऐप को डायनामिक लिंक डेटा प्राप्त करने के लिए यह आवश्यक है।
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 में स्वचालित रूप से ट्रैक किया जा सकता है और फायरबेस कंसोल में दिखाया जा सकता है।
-
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()
कॉल करें।
ऐप लिंक का उपयोग करके डायनामिक लिंक को संभालना
एंड्रॉइड 6.0 (एपीआई स्तर 23) और उच्चतर पर, आप अपने ऐप को सीधे डायनामिक लिंक को संभालने के लिए सेट कर सकते हैं जब आपका ऐप एंड्रॉइड ऐप लिंक का उपयोग करके पहले से ही इंस्टॉल हो।
सुनिश्चित करें कि आपने फायरबेस कंसोल में अपने प्रोजेक्ट में अपने ऐप के लिए 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
इंटेंट फ़िल्टर पंजीकृत होने चाहिए। फायरबेस आपके डायनेमिक लिंक डोमेन के लिए इसे स्वचालित रूप से संभालता है, लेकिन आप अपने डायनेमिक लिंक डोमेन पर होस्ट की गईassetlinks.json
फ़ाइल को खोलकर इसकी जांच कर सकते हैं:https://YOUR_DOMAIN/.well-known/assetlinks.json
आपके सभी फायरबेस ऐप्स के पैकेज नाम शामिल होने चाहिए।डायनामिक लिंक अब सीधे आपके ऐप पर भेजे जाएंगे। आप उस गतिविधि में
getDynamicLink()
कॉल करके डीप लिंक और अन्य डायनेमिक लिंक डेटा प्राप्त करने में सक्षम होंगे, जिसमें आपने ऐप लिंक इंटेंट फ़िल्टर जोड़ा है (जैसा कि हैंडल डीप लिंक में वर्णित है)।ध्यान दें: चूंकि ऐप लिंक के माध्यम से इनवॉइस करने पर उपयोगकर्ता सीधे ऐप पर पहुंच जाता है, इसलिए डायनामिक लिंक आवश्यक न्यूनतम संस्करण का सम्मान नहीं कर सकता है। इसलिए एक बार ऐप खुलने के बाद, आपको डायनामिक लिंक के न्यूनतम संस्करण ( getminimumappversion ) की तुलना PackageInfo.versionCode से करनी होगी और यदि आवश्यक हो तो getUpdateAppIntent का उपयोग करके ऐप को अपग्रेड करने के लिए उपयोगकर्ता को रीडायरेक्ट करना होगा।
जब तक कुछ अलग से न बताया जाए, तब तक इस पेज की सामग्री को Creative Commons Attribution 4.0 License के तहत और कोड के नमूनों को Apache 2.0 License के तहत लाइसेंस मिला है. ज़्यादा जानकारी के लिए, Google Developers साइट नीतियां देखें. Oracle और/या इससे जुड़ी हुई कंपनियों का, Java एक रजिस्टर किया हुआ ट्रेडमार्क है.
आखिरी बार 2023-09-20 (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":"अन्य" }]