Check out what’s new from Firebase at Google I/O 2022. Learn more

Android पर डायनामिक लिंक बनाएं

आप फायरबेस डायनेमिक लिंक्स बिल्डर एपीआई के साथ छोटे या लंबे डायनामिक लिंक बना सकते हैं। यह एपीआई या तो एक लंबे डायनामिक लिंक या डायनामिक लिंक पैरामीटर वाले ऑब्जेक्ट को स्वीकार करता है, और निम्न उदाहरणों की तरह यूआरएल लौटाता है:

https://example.com/link/WXYZ
https://example.page.link/WXYZ

इससे पहले कि आप अपने Android ऐप में डायनामिक लिंक बना सकें, आपको Firebase SDK शामिल करना होगा। यदि आपका ऐप डायनामिक लिंक प्राप्त करने के लिए सेट किया गया है, तो आप पहले ही इन चरणों को पूरा कर चुके हैं और आप इस अनुभाग को छोड़ सकते हैं।

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

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

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

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

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:30.0.2')
    
        // 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.0.2')
    
        // 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'
    }
    
  3. फायरबेस कंसोल में, डायनामिक लिंक अनुभाग खोलें।
  4. यदि आपने पहले से ही सेवा की शर्तों को स्वीकार नहीं किया है और अपने डायनामिक लिंक के लिए एक डोमेन सेट किया है, तो संकेत मिलने पर ऐसा करें।

    यदि आपके पास पहले से एक डायनामिक लिंक डोमेन है, तो इस पर ध्यान दें। जब आप प्रोग्रामेटिक रूप से डायनामिक लिंक बनाते हैं तो आपको एक डायनामिक लिंक डोमेन प्रदान करने की आवश्यकता होती है।

  5. अनुशंसित : अपने डीप लिंक और फ़ॉलबैक लिंक में अनुमत URL पैटर्न निर्दिष्ट करें. ऐसा करने से, आप अनधिकृत पार्टियों को ऐसे डायनामिक लिंक बनाने से रोकते हैं जो आपके डोमेन से उन साइटों पर रीडायरेक्ट करते हैं जिन्हें आप नियंत्रित नहीं करते हैं। विशिष्ट URL पैटर्न की अनुमति दें देखें।

फायरबेस कंसोल का प्रयोग करें

यदि आप एक एकल डायनामिक लिंक बनाना चाहते हैं, या तो परीक्षण उद्देश्यों के लिए, या अपनी मार्केटिंग टीम के लिए आसानी से एक लिंक बनाने के लिए जिसका उपयोग सोशल मीडिया पोस्ट जैसी किसी चीज़ में किया जा सकता है, तो सबसे आसान तरीका होगा कि आप फायरबेस कंसोल पर जाएं और एक बनाएं चरण-दर-चरण फ़ॉर्म का मैन्युअल रूप से पालन करना।

डायनामिक लिंक बनाने के लिए, बिल्डर विधियों के साथ डायनामिक लिंक पैरामीटर निर्दिष्ट करते हुए, इसके बिल्डर के साथ एक नया DynamicLink ऑब्जेक्ट बनाएं। फिर, buildDynamicLink या buildShortDynamicLink पर कॉल करें।

निम्न न्यूनतम उदाहरण https://www.example.com/ के लिए एक लंबा डायनामिक लिंक बनाता है जो Android पर आपके Android ऐप और iOS पर ऐप com.example.ios के साथ खुलता है:

Java

DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(Uri.parse("https://www.example.com/"))
        .setDomainUriPrefix("https://example.page.link")
        // Open links with this app on Android
        .setAndroidParameters(new DynamicLink.AndroidParameters.Builder().build())
        // Open links with com.example.ios on iOS
        .setIosParameters(new DynamicLink.IosParameters.Builder("com.example.ios").build())
        .buildDynamicLink();

Uri dynamicLinkUri = dynamicLink.getUri();

Kotlin+KTX

val dynamicLink = Firebase.dynamicLinks.dynamicLink {
    link = Uri.parse("https://www.example.com/")
    domainUriPrefix = "https://example.page.link"
    // Open links with this app on Android
    androidParameters { }
    // Open links with com.example.ios on iOS
    iosParameters("com.example.ios") { }
}

val dynamicLinkUri = dynamicLink.uri

एक छोटा डायनामिक लिंक बनाने के लिए, उसी तरह एक डायनामिक लिंक बनाएं, और फिर DynamicLink डायनामिक लिंक पर कॉल buildShortDynamicLink । एक छोटे लिंक के निर्माण के लिए एक नेटवर्क कॉल की आवश्यकता होती है, इसलिए सीधे लिंक को वापस करने के बजाय, buildShortDynamicLink एक Task देता है, जो अनुरोध पूरा होने पर छोटा लिंक उपलब्ध कराता है। उदाहरण के लिए:

Java

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(Uri.parse("https://www.example.com/"))
        .setDomainUriPrefix("https://example.page.link")
        // Set parameters
        // ...
        .buildShortDynamicLink()
        .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
            @Override
            public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                if (task.isSuccessful()) {
                    // Short link created
                    Uri shortLink = task.getResult().getShortLink();
                    Uri flowchartLink = task.getResult().getPreviewLink();
                } else {
                    // Error
                    // ...
                }
            }
        });

Kotlin+KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync {
    link = Uri.parse("https://www.example.com/")
    domainUriPrefix = "https://example.page.link"
    // Set parameters
    // ...
}.addOnSuccessListener { (shortLink, flowchartLink) ->
    // You'll need to import com.google.firebase.dynamiclinks.ktx.component1 and
    // com.google.firebase.dynamiclinks.ktx.component2

    // Short link created
    processShortLink(shortLink, flowchartLink)
}.addOnFailureListener {
    // Error
    // ...
}

डिफ़ॉल्ट रूप से, लघु डायनेमिक लिंक 17-वर्ण लिंक प्रत्ययों के साथ उत्पन्न होते हैं जो इस बात की अत्यधिक संभावना नहीं बनाते हैं कि कोई व्यक्ति एक वैध डायनामिक लिंक का अनुमान लगा सकता है। यदि, आपके उपयोग के मामले में, किसी को सफलतापूर्वक एक संक्षिप्त लिंक का अनुमान लगाने में कोई हानि नहीं होती है, तो आप ऐसे प्रत्यय उत्पन्न करना पसंद कर सकते हैं जो केवल अद्वितीय होने के लिए आवश्यक हों, जो आप ShortDynamicLink.Suffix.SHORT to buildShortDynamicLink विधि पास करके कर सकते हैं। :

Java

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        // ...
        .buildShortDynamicLink(ShortDynamicLink.Suffix.SHORT);
        // ...

Kotlin+KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync(ShortDynamicLink.Suffix.SHORT) {
    // Set parameters
    // ...
}

आप किसी भी समर्थित पैरामीटर के साथ डायनामिक लिंक बनाने के लिए डायनामिक लिंक बिल्डर एपीआई का उपयोग कर सकते हैं। विवरण के लिए एपीआई संदर्भ देखें।

निम्न उदाहरण कई सामान्य पैरामीटर सेट के साथ एक डायनामिक लिंक बनाता है:

Java

DynamicLink dynamicLink = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLink(Uri.parse("https://www.example.com/"))
        .setDomainUriPrefix("https://example.page.link")
        .setAndroidParameters(
                new DynamicLink.AndroidParameters.Builder("com.example.android")
                        .setMinimumVersion(125)
                        .build())
        .setIosParameters(
                new DynamicLink.IosParameters.Builder("com.example.ios")
                        .setAppStoreId("123456789")
                        .setMinimumVersion("1.0.1")
                        .build())
        .setGoogleAnalyticsParameters(
                new DynamicLink.GoogleAnalyticsParameters.Builder()
                        .setSource("orkut")
                        .setMedium("social")
                        .setCampaign("example-promo")
                        .build())
        .setItunesConnectAnalyticsParameters(
                new DynamicLink.ItunesConnectAnalyticsParameters.Builder()
                        .setProviderToken("123456")
                        .setCampaignToken("example-promo")
                        .build())
        .setSocialMetaTagParameters(
                new DynamicLink.SocialMetaTagParameters.Builder()
                        .setTitle("Example of a Dynamic Link")
                        .setDescription("This link works whether the app is installed or not!")
                        .build())
        .buildDynamicLink();  // Or buildShortDynamicLink()

Kotlin+KTX

val dynamicLink = Firebase.dynamicLinks.dynamicLink { // or Firebase.dynamicLinks.shortLinkAsync
    link = Uri.parse("https://www.example.com/")
    domainUriPrefix = "https://example.page.link"
    androidParameters("com.example.android") {
        minimumVersion = 125
    }
    iosParameters("com.example.ios") {
        appStoreId = "123456789"
        minimumVersion = "1.0.1"
    }
    googleAnalyticsParameters {
        source = "orkut"
        medium = "social"
        campaign = "example-promo"
    }
    itunesConnectAnalyticsParameters {
        providerToken = "123456"
        campaignToken = "example-promo"
    }
    socialMetaTagParameters {
        title = "Example of a Dynamic Link"
        description = "This link works whether the app is installed or not!"
    }
}

आप निम्न विधियों से डायनामिक लिंक पैरामीटर सेट कर सकते हैं:

डायनामिकलिंक पैरामीटर
सेटलिंक

आपका ऐप लिंक खुल जाएगा। एक यूआरएल निर्दिष्ट करें जिसे आपका ऐप संभाल सकता है, आम तौर पर ऐप की सामग्री या पेलोड, जो ऐप-विशिष्ट तर्क शुरू करता है (जैसे उपयोगकर्ता को कूपन के साथ क्रेडिट करना या स्वागत स्क्रीन प्रदर्शित करना)। यह लिंक एक अच्छी तरह से प्रारूपित यूआरएल होना चाहिए, ठीक से यूआरएल-एन्कोडेड होना चाहिए, या तो एचटीटीपी या एचटीटीपीएस का उपयोग करना चाहिए, और कोई अन्य डायनामिक लिंक नहीं हो सकता है।

सेटडोमेनयूरीप्रीफिक्स आपका डायनामिक लिंक URL उपसर्ग, जिसे आप Firebase कंसोल में पा सकते हैं। एक डायनामिक लिंक डोमेन निम्न उदाहरणों की तरह दिखता है:
https://example.com/link
https://example.page.link
Androidपैरामीटर
सेटफ़ॉलबैकयूआरएल ऐप्लिकेशन के इंस्टॉल न होने पर खुलने वाला लिंक. ऐप के इंस्टॉल न होने पर Play Store से अपना ऐप इंस्टॉल करने के अलावा कुछ और करने के लिए इसे निर्दिष्ट करें, जैसे सामग्री का मोबाइल वेब संस्करण खोलें, या अपने ऐप के लिए प्रचार पृष्ठ प्रदर्शित करें।
न्यूनतम संस्करण सेट करें आपके versionCode के न्यूनतम संस्करण का वर्जन कोड जो लिंक को खोल सकता है। यदि इंस्टॉल किया गया ऐप पुराना संस्करण है, तो उपयोगकर्ता को ऐप को अपग्रेड करने के लिए Play Store पर ले जाया जाता है।
आईओएस पैरामीटर्स
setAppStoreId आपके ऐप का ऐप स्टोर आईडी, ऐप के इंस्टॉल न होने पर उपयोगकर्ताओं को ऐप स्टोर पर भेजने के लिए उपयोग किया जाता है
सेटफ़ॉलबैकयूआरएल ऐप्लिकेशन के इंस्टॉल न होने पर खुलने वाला लिंक. ऐप इंस्टॉल न होने पर ऐप स्टोर से अपना ऐप इंस्टॉल करने के अलावा कुछ और करने के लिए इसे निर्दिष्ट करें, जैसे सामग्री का मोबाइल वेब संस्करण खोलें, या अपने ऐप के लिए प्रचार पृष्ठ प्रदर्शित करें।
सेटकस्टमस्कीम आपके ऐप की कस्टम यूआरएल योजना, अगर आपके ऐप की बंडल आईडी के अलावा कुछ और परिभाषित की जाती है
सेटआईपैडफॉलबैकयूआरएल ऐप के इंस्‍टॉल न होने पर iPads पर खुलने का लिंक। ऐप इंस्टॉल न होने पर ऐप स्टोर से अपना ऐप इंस्टॉल करने के अलावा कुछ और करने के लिए इसे निर्दिष्ट करें, जैसे सामग्री का वेब संस्करण खोलें, या अपने ऐप के लिए प्रचार पृष्ठ प्रदर्शित करें।
सेटआईपैडबंडलआईडी लिंक को खोलने के लिए iPads पर उपयोग किए जाने वाले iOS ऐप की बंडल आईडी। ऐप्लिकेशन को Firebase कंसोल के खास जानकारी वाले पेज से आपके प्रोजेक्ट से कनेक्ट होना चाहिए.
न्यूनतम संस्करण सेट करें आपके ऐप्लिकेशन के कम से कम वर्शन की वर्शन संख्या जो लिंक खोल सकती है. यह ध्वज आपके ऐप को खोले जाने पर पास कर दिया जाता है, और आपके ऐप को यह तय करना होगा कि इसके साथ क्या करना है।
नेविगेशनइन्फो पैरामीटर्स
setForcedRedirectEnabled यदि '1' पर सेट है, तो डायनेमिक लिंक खोले जाने पर ऐप पूर्वावलोकन पृष्ठ को छोड़ दें, और इसके बजाय ऐप या स्टोर पर रीडायरेक्ट करें। ऐप पूर्वावलोकन पृष्ठ (डिफ़ॉल्ट रूप से सक्षम) उपयोगकर्ताओं को ऐप्स में डायनामिक लिंक खोलने पर अधिक विश्वसनीय रूप से सबसे उपयुक्त गंतव्य पर भेज सकता है; हालांकि, यदि आप उम्मीद करते हैं कि कोई डायनामिक लिंक केवल उन ऐप्स में खोला जाएगा जो इस पृष्ठ के बिना डायनामिक लिंक को मज़बूती से खोल सकते हैं, तो आप इसे इस पैरामीटर के साथ अक्षम कर सकते हैं। यह पैरामीटर केवल iOS पर डायनामिक लिंक के व्यवहार को प्रभावित करेगा।
सोशलमेटाटैगपैरामीटर
सेटटाइटल किसी सामाजिक पोस्ट में डायनामिक लिंक साझा किए जाने पर उपयोग किया जाने वाला शीर्षक.
सेटविवरण डायनामिक लिंक को किसी सामाजिक पोस्ट में साझा किए जाने पर उपयोग करने का विवरण।
सेटइमेजयूआरएल इस लिंक से संबंधित किसी चित्र का URL. छवि कम से कम 300x200 पिक्सल और 300 केबी से कम होनी चाहिए।
GoogleAnalyticsपैरामीटर
सेट स्रोत
सेटमीडियम
अभियान सेट करें
सेट टर्म
सामग्री सेट करें
Google Play विश्लेषिकी पैरामीटर। ये पैरामीटर ( utm_source , utm_medium , utm_campaign , utm_term , utm_content ) को प्ले स्टोर पर पास किया जाता है और साथ ही लिंक पेलोड में जोड़ा जाता है।
आईट्यून्स कनेक्ट एनालिटिक्स पैरामीटर्स
सेटप्रोवाइडरटोकन
सेटएफिलिएटटोकन
सेटअभियानटोकन
आईट्यून्स कनेक्ट एनालिटिक्स पैरामीटर। ये पैरामीटर ( pt , at , ct ) ऐप स्टोर को पास कर दिए जाते हैं।

एक लंबे डायनामिक लिंक को छोटा करने के लिए, अन्य बिल्डर विधियों के साथ पैरामीटर सेट करने के बजाय setLongLink का उपयोग करके डायनामिक लिंक का URL निर्दिष्ट करें:

Java

Task<ShortDynamicLink> shortLinkTask = FirebaseDynamicLinks.getInstance().createDynamicLink()
        .setLongLink(Uri.parse("https://example.page.link/?link=https://www.example.com/&apn=com.example.android&ibn=com.example.ios"))
        .buildShortDynamicLink()
        .addOnCompleteListener(this, new OnCompleteListener<ShortDynamicLink>() {
            @Override
            public void onComplete(@NonNull Task<ShortDynamicLink> task) {
                if (task.isSuccessful()) {
                    // Short link created
                    Uri shortLink = task.getResult().getShortLink();
                    Uri flowchartLink = task.getResult().getPreviewLink();
                } else {
                    // Error
                    // ...
                }
            }
        });

Kotlin+KTX

val shortLinkTask = Firebase.dynamicLinks.shortLinkAsync {
    longLink = Uri.parse("https://example.page.link/?link=" +
            "https://www.example.com/&apn=com.example.android&ibn=com.example.ios")
}.addOnSuccessListener { (shortLink, flowChartLink) ->
    // You'll need to import com.google.firebase.dynamiclinks.ktx.component1 and
    // com.google.firebase.dynamiclinks.ktx.component2

    // Short link created
    processShortLink(shortLink, flowChartLink)
}.addOnFailureListener {
    // Error
    // ...
}