Flutter ऐप्लिकेशन में डाइनैमिक लिंक बनाना

Firebase Dynamic Links Builder API की मदद से, छोटे या बड़े डाइनैमिक लिंक बनाए जा सकते हैं. यह एपीआई, डाइनैमिक लिंक या डाइनैमिक लिंक पैरामीटर वाला ऑब्जेक्ट स्वीकार करता है. साथ ही, यह नीचे दिए गए उदाहरणों की तरह यूआरएल दिखाता है:

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

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

  1. अगर आपने अब तक ऐसा नहीं किया है, तो Flutter के लिए Firebase SDK टूल इंस्टॉल करें और उन्हें शुरू करें.

  2. डाइनैमिक लिंक प्लगिन इंस्टॉल करने के लिए, अपने Flutter प्रोजेक्ट की रूट डायरेक्ट्री से यह कमांड चलाएं:

    flutter pub add firebase_dynamic_links
    
  3. अगर आपको कोई Android ऐप्लिकेशन बनाना है, तो Firebase कंसोल के प्रोजेक्ट सेटिंग पेज को खोलें. इसके बाद, पक्का करें कि आपने SHA-1 हस्ताक्षर करने की कुंजी दी हो. अगर ऐप्लिकेशन लिंक का इस्तेमाल किया जाता है, तो अपनी SHA-256 कुंजी भी डालें.

  4. Firebase कंसोल में, डाइनैमिक लिंक सेक्शन खोलें.

    1. अगर आपने अब तक अपने डाइनैमिक लिंक के लिए कोई डोमेन सेट अप नहीं किया है, तो शुरू करें बटन पर क्लिक करें और निर्देशों का पालन करें.

      अगर आपके पास पहले से ही कोई Dynamic Links डोमेन है, तो उसे नोट कर लें. डाइनैमिक लिंक को प्रोग्राम के हिसाब से बनाते समय, आपको डाइनैमिक लिंक का डोमेन देना होगा.

    2. सुझाया गया: "ज़्यादा" (⋮) मेन्यू में जाकर, उन यूआरएल पैटर्न के बारे में बताएं जिन्हें डीप लिंक और फ़ॉलबैक लिंक में इस्तेमाल करने की अनुमति है. ऐसा करने से, अनधिकृत पक्षों को ऐसे डाइनैमिक लिंक बनाने से रोका जा सकता है जो आपके डोमेन से उन साइटों पर रीडायरेक्ट करते हैं जिन पर आपका कंट्रोल नहीं है.

      यूआरएल के खास पैटर्न के लिए अनुमति देना लेख पढ़ें.

डाइनैमिक लिंक बनाने के लिए, नया DynamicLinkParameters ऑब्जेक्ट बनाएं और उसे buildLink() या buildShortLink() पर पास करें.

यहां दिए गए कम से कम उदाहरण में, https://www.example.com/ पर ले जाने वाला लंबा डाइनैमिक लिंक बनाया गया है. यह लिंक, Android पर com.example.app.android और iOS पर com.example.app.ios के साथ खुलता है:

final dynamicLinkParams = DynamicLinkParameters(
  link: Uri.parse("https://www.example.com/"),
  uriPrefix: "https://example.page.link",
  androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
  iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
    await FirebaseDynamicLinks.instance.buildLink(dynamicLinkParams);

छोटा डाइनैमिक लिंक बनाने के लिए, DynamicLinkParameters ऑब्जेक्ट को buildShortLink() पर पास करें. शॉर्ट लिंक बनाने के लिए, नेटवर्क कॉल की ज़रूरत होती है. उदाहरण के लिए:

final dynamicLinkParams = DynamicLinkParameters(
  link: Uri.parse("https://www.example.com/"),
  uriPrefix: "https://example.page.link",
  androidParameters: const AndroidParameters(packageName: "com.example.app.android"),
  iosParameters: const IOSParameters(bundleId: "com.example.app.ios"),
);
final dynamicLink =
    await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);

डिफ़ॉल्ट रूप से, छोटे डाइनैमिक लिंक ऐसे सफ़िक्स के साथ जनरेट होते हैं जो सिर्फ़ कुछ वर्णों के होते हैं. इससे लिंक छोटे हो जाते हैं. हालांकि, इससे यह भी हो सकता है कि कोई व्यक्ति मान्य शॉर्ट लिंक का अनुमान लगा ले. आम तौर पर, ऐसा करने से कोई नुकसान नहीं होता, क्योंकि लिंक से सार्वजनिक जानकारी मिलती है.

हालांकि, अगर आपके छोटे लिंक से उपयोगकर्ता की निजी जानकारी मिलती है, तो आपको 17 वर्णों वाले सफ़िक्स के साथ लंबे लिंक बनाने चाहिए. इससे किसी व्यक्ति के लिए, मान्य डाइनैमिक लिंक का अनुमान लगाना बहुत मुश्किल हो जाएगा. इसके लिए, ShortDynamicLinkType.unguessable को buildShortLink() तरीके से पास करें:

final unguessableDynamicLink = await FirebaseDynamicLinks.instance.buildShortLink(
    dynamicLinkParams,
    shortLinkType: ShortDynamicLinkType.unguessable,
);

डाइनैमिक लिंक बनाने के लिए, Dynamic Link Builder API का इस्तेमाल किया जा सकता है. इसके लिए, आपको किसी भी ऐसे पैरामीटर का इस्तेमाल करना होगा जो काम करता हो. एपीआई रेफ़रंस देखें.

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

final dynamicLinkParams = DynamicLinkParameters(
  link: Uri.parse("https://www.example.com/"),
  uriPrefix: "https://example.page.link",
  androidParameters: const AndroidParameters(
    packageName: "com.example.app.android",
    minimumVersion: 30,
  ),
  iosParameters: const IOSParameters(
    bundleId: "com.example.app.ios",
    appStoreId: "123456789",
    minimumVersion: "1.0.1",
  ),
  googleAnalyticsParameters: const GoogleAnalyticsParameters(
    source: "twitter",
    medium: "social",
    campaign: "example-promo",
  ),
  socialMetaTagParameters: SocialMetaTagParameters(
    title: "Example of a Dynamic Link",
    imageUrl: Uri.parse("https://example.com/image.png"),
  ),
);
final dynamicLink =
    await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);

डाइनैमिक लिंक पैरामीटर को इन तरीकों से सेट किया जा सकता है:

DynamicLink पैरामीटर
setLink वह लिंक जिसे आपका ऐप्लिकेशन खोलेगा. ऐसा यूआरएल तय करें जिसे आपका ऐप्लिकेशन हैंडल कर सके. आम तौर पर, यह ऐप्लिकेशन का कॉन्टेंट या पेलोड होता है. इससे ऐप्लिकेशन के हिसाब से लॉजिक शुरू होता है. जैसे, उपयोगकर्ता को कूपन देना या वेलकम स्क्रीन दिखाना. यह लिंक, सही फ़ॉर्मैट वाला यूआरएल होना चाहिए. साथ ही, इसे सही तरीके से यूआरएल-कोड में बदला गया हो. इसमें एचटीटीपी या एचटीटीपीएस में से किसी एक का इस्तेमाल किया गया हो. साथ ही, यह कोई दूसरा डाइनैमिक लिंक नहीं हो सकता.
setDomainUriPrefix आपके डाइनैमिक लिंक का यूआरएल प्रीफ़िक्स. यह आपको Firebase कंसोल में मिल सकता है. डाइनैमिक लिंक का डोमेन कैसा दिखता है, यह जानने के लिए यहां दिए गए उदाहरण देखें:
https://example.com/link
https://example.page.link
AndroidParameters
setFallbackUrl ऐप्लिकेशन इंस्टॉल न होने पर, खोलने के लिए लिंक. जब ऐप्लिकेशन इंस्टॉल नहीं होता है, तब Play Store से ऐप्लिकेशन इंस्टॉल करने के अलावा कोई और कार्रवाई करने के लिए, इस विकल्प का इस्तेमाल करें. जैसे, कॉन्टेंट का मोबाइल वेब वर्शन खोलना या अपने ऐप्लिकेशन का प्रमोशनल पेज दिखाना.
setMinimumVersion आपके ऐप्लिकेशन के उस वर्शन का versionCode जो लिंक खोल सकता है. अगर इंस्टॉल किया गया ऐप्लिकेशन पुराना वर्शन है, तो उपयोगकर्ता को Play Store पर ले जाया जाता है, ताकि वह ऐप्लिकेशन को अपग्रेड कर सके.
IosParameters
setAppStoreId आपके ऐप्लिकेशन का App Store आईडी. इसका इस्तेमाल, ऐप्लिकेशन इंस्टॉल न होने पर लोगों को App Store पर भेजने के लिए किया जाता है
setFallbackUrl ऐप्लिकेशन इंस्टॉल न होने पर, खोलने के लिए लिंक. ऐप्लिकेशन इंस्टॉल न होने पर, App Store से ऐप्लिकेशन इंस्टॉल करने के अलावा कोई और कार्रवाई करने के लिए, इस वैल्यू का इस्तेमाल करें. जैसे, कॉन्टेंट का मोबाइल वेब वर्शन खोलना या अपने ऐप्लिकेशन का प्रमोशनल पेज दिखाना.
setCustomScheme आपके ऐप्लिकेशन की कस्टम यूआरएल स्कीम. अगर इसे आपके ऐप्लिकेशन के बंडल आईडी के अलावा किसी और चीज़ के लिए तय किया गया है, तो
setIpadFallbackUrl अगर ऐप्लिकेशन इंस्टॉल नहीं है, तो iPad पर खोलने के लिए लिंक. इस पैरामीटर का इस्तेमाल तब करें, जब ऐप्लिकेशन इंस्टॉल न होने पर App Store से ऐप्लिकेशन इंस्टॉल करने के अलावा कोई और कार्रवाई करनी हो. जैसे, कॉन्टेंट का वेब वर्शन खोलना या अपने ऐप्लिकेशन का प्रमोशनल पेज दिखाना.
setIpadBundleId iPad पर लिंक खोलने के लिए, iOS ऐप्लिकेशन का बंडल आईडी. ऐप्लिकेशन को Firebase कंसोल के खास जानकारी वाले पेज से, अपने प्रोजेक्ट से कनेक्ट करना होगा.
setMinimumVersion आपके ऐप्लिकेशन के उस वर्शन का नंबर जो लिंक खोल सकता है. जब आपका ऐप्लिकेशन खोला जाता है, तब यह फ़्लैग उसे पास किया जाता है. आपके ऐप्लिकेशन को यह तय करना होता है कि इस फ़्लैग का क्या करना है.
NavigationInfoParameters
setForcedRedirectEnabled अगर इसे '1' पर सेट किया जाता है, तो डाइनैमिक लिंक खुलने पर ऐप्लिकेशन की झलक दिखाने वाले पेज को स्किप कर दिया जाता है. इसके बजाय, उपयोगकर्ता को ऐप्लिकेशन या स्टोर पर रीडायरेक्ट कर दिया जाता है. ऐप्लिकेशन की झलक दिखाने वाला पेज (डिफ़ॉल्ट रूप से चालू होता है) उपयोगकर्ताओं को ज़्यादा भरोसेमंद तरीके से सही डेस्टिनेशन पर भेज सकता है. ऐसा तब होता है, जब वे ऐप्लिकेशन में डाइनैमिक लिंक खोलते हैं. हालांकि, अगर आपको किसी डाइनैमिक लिंक को सिर्फ़ उन ऐप्लिकेशन में खोलना है जो इस पेज के बिना भी डाइनैमिक लिंक को भरोसेमंद तरीके से खोल सकते हैं, तो इस पैरामीटर की मदद से इसे बंद किया जा सकता है. इस पैरामीटर से, डाइनैमिक लिंक के व्यवहार पर सिर्फ़ iOS पर असर पड़ेगा.
SocialMetaTagParameters
setTitle सोशल पोस्ट में डाइनैमिक लिंक शेयर करते समय इस्तेमाल किया जाने वाला टाइटल.
setDescription सोशल पोस्ट में डाइनैमिक लिंक शेयर करते समय इस्तेमाल किया जाने वाला ब्यौरा.
setImageUrl इस लिंक से जुड़ी इमेज का यूआरएल. इमेज का साइज़ कम से कम 300x200 पिक्सल और 300 केबी से कम होना चाहिए.
GoogleAnalyticsParameters
setSource
setMedium
setCampaign
setTerm
setContent
Google Play के आंकड़ों से जुड़े पैरामीटर. ये पैरामीटर (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`) Play Store को भी पास किए जाते हैं. साथ ही, इन्हें लिंक के पेलोड में भी जोड़ा जाता है.
ItunesConnectAnalyticsParameters
setProviderToken
setAffiliateToken
setCampaignToken
iTunes Connect के आंकड़ों के पैरामीटर. ये पैरामीटर (`pt`, `at`, `ct`) App Store को पास किए जाते हैं.