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

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

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. अगर आपने डाइनैमिक लिंक के लिए कोई डोमेन सेट अप नहीं किया है, तो शुरू करें बटन पर क्लिक करें और निर्देशों का पालन करें.

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

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

डाइनैमिक लिंक बिल्डर एपीआई का इस्तेमाल करके, काम करने वाले किसी भी पैरामीटर के साथ डाइनैमिक लिंक बनाए जा सकते हैं. एपीआई के बारे में जानकारी देखें.

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

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 parameters
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 iOS ऐप्लिकेशन का बंडल आईडी. इसका इस्तेमाल, iPad पर लिंक खोलने के लिए किया जाता है. ऐप्लिकेशन को Firebase कंसोल के खास जानकारी वाले पेज से आपके प्रोजेक्ट से कनेक्ट किया जाना चाहिए.
setMinimumVersion आपके ऐप्लिकेशन के उस वर्शन का वर्शन नंबर जो लिंक खोल सकता है. यह फ़्लैग, आपका ऐप्लिकेशन खुलने पर उसमें पास किया जाता है. साथ ही, आपका ऐप्लिकेशन यह तय करता है कि इसके साथ क्या करना है.
NavigationInfoParameters
setForcedRedirectEnabled अगर इसे '1' पर सेट किया जाता है, तो डाइनैमिक लिंक खुलने पर ऐप्लिकेशन की झलक दिखाने वाला पेज नहीं दिखेगा. इसके बजाय, उपयोगकर्ता को सीधे ऐप्लिकेशन या स्टोर पर रीडायरेक्ट किया जाएगा. ऐप्लिकेशन की झलक दिखाने वाला पेज (डिफ़ॉल्ट रूप से चालू) उपयोगकर्ताओं को ज़्यादा भरोसेमंद तरीके से, सबसे सही डेस्टिनेशन पर भेज सकता है. हालांकि, अगर आपको लगता है कि डाइनैमिक लिंक सिर्फ़ उन ऐप्लिकेशन में खुलेगा जो इस पेज के बिना भी डाइनैमिक लिंक को भरोसेमंद तरीके से खोल सकते हैं, तो इस पैरामीटर की मदद से इसे बंद किया जा सकता है. इस पैरामीटर का असर, iOS पर डाइनैमिक लिंक के व्यवहार पर ही पड़ेगा.
SocialMetaTagParameters
setTitle वह टाइटल जिसका इस्तेमाल, सोशल पोस्ट में डाइनैमिक लिंक शेयर करने पर किया जाएगा.
setDescription वह ब्यौरा जिसका इस्तेमाल, सोशल पोस्ट में डाइनैमिक लिंक शेयर करने पर किया जाएगा.
setImageUrl इस लिंक से जुड़ी इमेज का यूआरएल. इमेज का साइज़ कम से कम 300x200 पिक्सल होना चाहिए. साथ ही, यह 300 केबी से कम होनी चाहिए.
GoogleAnalyticsParameters
setSource
setMedium
setCampaign
setTerm
setContent
Google Play के Analytics पैरामीटर. ये पैरामीटर (`utm_source`, `utm_medium`, `utm_campaign`, `utm_term`, `utm_content`) Play Store पर भी पास किए जाते हैं. साथ ही, इन्हें लिंक पेलोड में भी जोड़ा जाता है.
ItunesConnectAnalyticsParameters
setProviderToken
setAffiliateToken
setCampaignToken
iTunes Connect के Analytics पैरामीटर. ये पैरामीटर (`pt`, `at`, `ct`) App Store पर पास किए जाते हैं.