एंड्रॉइड पर डायनामिक लिंक बनाएं

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

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

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

  1. यदि आपने पहले से नहीं किया है, तो अपने एंड्रॉइड प्रोजेक्ट में फायरबेस जोड़ें

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

  2. अपने मॉड्यूल (ऐप-स्तर) ग्रैडल फ़ाइल में (आमतौर पर <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle ), डायनेमिक लिंक के लिए निर्भरता जोड़ें Android के लिए लाइब्रेरी. हम लाइब्रेरी वर्जनिंग को नियंत्रित करने के लिए फायरबेस एंड्रॉइड BoM का उपयोग करने की सलाह देते हैं।

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

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.8.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'
    }
    

    फायरबेस एंड्रॉइड बीओएम का उपयोग करके, आपका ऐप हमेशा फायरबेस एंड्रॉइड लाइब्रेरी के संगत संस्करणों का उपयोग करेगा।

    (वैकल्पिक) 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.2.0'
        implementation 'com.google.firebase:firebase-analytics:21.6.1'
    }
    
    कोटलिन-विशिष्ट लाइब्रेरी मॉड्यूल खोज रहे हैं? अक्टूबर 2023 (फायरबेस बीओएम 32.5.0) से शुरू होकर, कोटलिन और जावा डेवलपर्स दोनों मुख्य लाइब्रेरी मॉड्यूल पर निर्भर हो सकते हैं (विवरण के लिए, इस पहल के बारे में अक्सर पूछे जाने वाले प्रश्न देखें)।
  3. फायरबेस कंसोल में, डायनेमिक लिंक अनुभाग खोलें।
  4. यदि आपने पहले से ही सेवा की शर्तों को स्वीकार नहीं किया है और अपने डायनेमिक लिंक के लिए एक डोमेन सेट नहीं किया है, तो संकेत मिलने पर ऐसा करें।

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

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

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

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

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

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

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

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();

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

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.component1 and
    // com.google.firebase.dynamiclinks.component2

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

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
                    // ...
                }
            }
        });

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

Kotlin+KTX

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

Java

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

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

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

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!"
    }
}

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()

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

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

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

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

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

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.component1 and
    // com.google.firebase.dynamiclinks.component2

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

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
                    // ...
                }
            }
        });