Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

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

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

आवश्यक शर्तें

आरंभ करने से पहले, यह सुनिश्चित कर लें अपने iOS परियोजना के लिए Firebase जोड़ने

  1. अपने iOS परियोजना के लिए Firebase जोड़े
  2. अपने में निम्नलिखित फली शामिल Podfile :
    pod 'Firebase/Analytics'
    pod 'Firebase/DynamicLinks'
        
  3. भागो pod install और बनाया खोलने .xcworkspace फ़ाइल।
  4. Firebase कंसोल में, गतिशील लिंक अनुभाग खोलें।
  5. यदि आपने पहले से ही सेवा की शर्तों को स्वीकार नहीं किया है और अपने डायनामिक लिंक के लिए एक यूआरआई उपसर्ग सेट किया है, तो संकेत मिलने पर ऐसा करें।

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

  6. अनुशंसित: URL प्रतिमानों अपने डीप लिंक और वापस आने वाली कड़ियों में अनुमति निर्दिष्ट करें। ऐसा करने से, आप अनधिकृत पार्टियों को ऐसे डायनामिक लिंक बनाने से रोकते हैं जो आपके डोमेन से उन साइटों पर रीडायरेक्ट करते हैं जिन्हें आप नियंत्रित नहीं करते हैं। देखें विशिष्ट URL प्रतिमानों की अनुमति दें
  7. सुनिश्चित करें कि आपके ऐप की ऐप स्टोर आईडी और आपकी ऐप आईडी उपसर्ग आपके ऐप की सेटिंग में निर्दिष्ट है। देखने और संपादित करने के लिए अपनी एप्लिकेशन सेटिंग, अपने Firebase परियोजना के लिए जाने के सेटिंग्स पृष्ठ और अपने iOS एप्लिकेशन का चयन करें।

    पुष्टि करें कि आपके Firebase परियोजना ठीक से खोलने के द्वारा अपने iOS एप्लिकेशन में गतिशील लिंक का उपयोग करने के लिए कॉन्फ़िगर है apple-app-site-association , जो आपके डायनामिक लिंक डोमेन पर होस्ट की है फ़ाइल। Firebase में काम करेगा apple-app-site-association डोमेन के रूट के साथ ही से फ़ाइल .well-known उपनिर्देशिका। उदाहरण के लिए:

        https://example.com/apple-app-site-association
        https://example.com/.well-known/apple-app-site-association
        

    अपने अनुप्रयोग जुड़ा हुआ है, apple-app-site-association फ़ाइल को अपने ऐप्लिकेशन के ऐप्लिकेशन आईडी उपसर्ग और बंडल आईडी का संदर्भ होता है। उदाहरण के लिए:

    {"applinks":{"apps":[],"details":[{"appID":"1234567890.com.example.ios","paths":["/*"]}]}}

    यदि details संपत्ति खाली है, फिर से जांच कि आप अपने ऐप्स आईडी उपसर्ग निर्दिष्ट है। ध्यान दें कि आपका ऐप आईडी उपसर्ग आपकी टीम आईडी के समान नहीं हो सकता है।

अपने ऐप्लिकेशन में Firebase जोड़ें

  1. अपने में Firebase मॉड्यूल आयात UIApplicationDelegate :

    तीव्र

    import Firebase

    उद्देश्य सी

    @import Firebase;
  2. कॉन्फ़िगर एक FirebaseApp , उदाहरण के साझा आम तौर पर यदि आपके ऐप की में application:didFinishLaunchingWithOptions: विधि:

    तीव्र

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    उद्देश्य सी

    // Use Firebase library to configure APIs
    [FIRApp configure];

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

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

आईओएस बिल्डर एपीआई का प्रयोग करें

आप पैरामीटर से डायनामिक लिंक बनाने के लिए या एक लंबे डायनामिक लिंक को छोटा करने के लिए आईओएस बिल्डर एपीआई का उपयोग कर सकते हैं।

एक गतिशील लिंक बनाने के लिए, एक नया बनाने DynamicLinkComponents वस्तु और वस्तु की इसी गुण की स्थापना करके गतिशील लिंक पैरामीटर निर्दिष्ट। फिर, वस्तु की से लंबी लिंक मिल url संपत्ति या फोन करके कम लिंक मिल shorten()

निम्नलिखित न्यूनतम उदाहरण के लिए एक लंबे गतिशील लिंक बनाता है https://www.example.com/my-page और iOS पर अपने iOS एप्लिकेशन अनुप्रयोग के साथ खुलती com.example.android Android पर:

तीव्र

guard let link = URL(string: "https://www.example.com/my-page") else { return }
let dynamicLinksDomainURIPrefix = "https://example.com/link"
let linkBuilder = DynamicLinkComponents(link: link, domainURIPrefix: dynamicLinksDomainURIPRefix)
linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.example.ios")
linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.example.android")

guard let longDynamicLink = linkBuilder.url else { return }
print("The long URL is: \(longDynamicLink)")

उद्देश्य सी

NSURL *link = [[NSURL alloc] initWithString:@"https://www.example.com/my-page"];
NSString *dynamicLinksDomainURIPrefix = @"https://example.com/link";
FIRDynamicLinkComponents *linkBuilder = [[FIRDynamicLinkComponents alloc]
                                         initWithLink:link
                                               domainURIPrefix:dynamicLinksDomainURIPrefix];
linkBuilder.iOSParameters = [[FIRDynamicLinkIOSParameters alloc]
                             initWithBundleID:@"com.example.ios"];
linkBuilder.androidParameters = [[FIRDynamicLinkAndroidParameters alloc]
                                 initWithPackageName:@"com.example.android"];

NSLog(@"The long URL is: %@", linkBuilder.url);

एक छोटी गतिशील लिंक बनाने के लिए, एक निर्माण करने के लिए DynamicLinkComponents उसी तरह है, और फिर कॉल shorten()

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

तीव्र

linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

उद्देश्य सी

[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL,
                                     NSArray<NSString *> * _Nullable warnings,
                                     NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];
      

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

तीव्र

linkBuilder.options = DynamicLinkComponentsOptions()
linkBuilder.options.pathLength = .short
linkBuilder.shorten() { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

उद्देश्य सी

linkBuilder.dynamicLinkComponentsOptions = [[FIRDynamicLinkComponentsOptions alloc] init];
linkBuilder.dynamicLinkComponentsOptions.pathLength = FIRShortDynamicLinkPathLengthShort;
[linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL,
                                     NSArray<NSString *> * _Nullable warnings,
                                     NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];
      

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

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

तीव्र

guard let link = URL(string: "https://www.example.com/my-page") else { return }
let dynamicLinksDomainURIPrefix = "https://example.com/link"
let linkBuilder = DynamicLinkComponents(link: link, domainURIPRefix: dynamicLinksDomainURIPrefix)

linkBuilder.iOSParameters = DynamicLinkIOSParameters(bundleID: "com.example.ios")
linkBuilder.iOSParameters.appStoreID = "123456789"
linkBuilder.iOSParameters.minimumAppVersion = "1.2.3"

linkBuilder.androidParameters = DynamicLinkAndroidParameters(packageName: "com.example.android")
linkBuilder.androidParameters.minimumVersion = 123

linkBuilder.analyticsParameters = DynamicLinkGoogleAnalyticsParameters(source: "orkut",
                                                                       medium: "social",
                                                                       campaign: "example-promo")

linkBuilder.iTunesConnectParameters = DynamicLinkItunesConnectAnalyticsParameters()
linkBuilder.iTunesConnectParameters.providerToken = "123456"
linkBuilder.iTunesConnectParameters.campaignToken = "example-promo"

linkBuilder.socialMetaTagParameters = DynamicLinkSocialMetaTagParameters()
linkBuilder.socialMetaTagParameters.title = "Example of a Dynamic Link"
linkBuilder.socialMetaTagParameters.descriptionText = "This link works whether the app is installed or not!"
linkBuilder.socialMetaTagParameters.imageURL = "https://www.example.com/my-image.jpg"

guard let longDynamicLink = linkBuilder.url else { return }
print("The long URL is: \(longDynamicLink)")

उद्देश्य सी

NSURL *link = [[NSURL alloc] initWithString:@"https://www.example.com/my-page"];
NSString *dynamicLinksDomainURIPrefix = @"https://example.com/link";
FIRDynamicLinkComponents *linkBuilder = [[FIRDynamicLinkComponents alloc]
                                         initWithLink:link
                                         domainURIPrefix:dynamicLinksDomainURIPrefix];

linkBuilder.iOSParameters = [[FIRDynamicLinkIOSParameters alloc]
                             initWithBundleID:@"com.example.ios"];
linkBuilder.iOSParameters.appStoreID = @"123456789";
linkBuilder.iOSParameters.minimumAppVersion = @"1.2.3";

linkBuilder.androidParameters = [[FIRDynamicLinkAndroidParameters alloc]
                                 initWithPackageName:@"com.example.android"];
linkBuilder.androidParameters.minimumVersion = 123;

linkBuilder.analyticsParameters = [[FIRDynamicLinkGoogleAnalyticsParameters alloc]
                                   initWithSource:@"orkut"
                                           medium:@"social"
                                         campaign:@"example-promo"];

linkBuilder.iTunesConnectParameters = [[FIRDynamicLinkItunesConnectAnalyticsParameters alloc] init];
linkBuilder.iTunesConnectParameters.providerToken = @"123456";
linkBuilder.iTunesConnectParameters.campaignToken = @"example-promo";

linkBuilder.socialMetaTagParameters = [[FIRDynamicLinkSocialMetaTagParameters alloc] init];
linkBuilder.socialMetaTagParameters.title = @"Example of a Dynamic Link";
linkBuilder.socialMetaTagParameters.descriptionText = @"This link works whether the app is installed or not!";
linkBuilder.socialMetaTagParameters.imageURL = @"https://www.example.com/my-image.jpg";

NSLog(@"The long URL is: %@", linkBuilder.url);

आप निम्न वस्तुओं और गुणों के साथ डायनामिक लिंक पैरामीटर सेट कर सकते हैं:

डायनामिकलिंकघटक
संपर्क

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

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

छोटा एक लंबे गतिशील लिंक, करने के लिए लंबे समय से गतिशील लिंक पास करने के लिए shortenURL(url:options:) के साथ एक साथ DynamicLinkComponentsOptions आपत्ति यदि आप एक छोटे से प्रत्यय के साथ एक लिंक उत्पन्न करना चाहते हैं:

तीव्र

DynamicLinkComponents.shortenURL(url: longLinkUrl, options: nil) { url, warnings, error in
  guard let url = url, error != nil else { return }
  print("The short URL is: \(url)")
}

उद्देश्य सी

[FIRDynamicLinkComponents shortenURL:longLinkUrl
                             options:nil
                          completion:^(NSURL * _Nullable shortURL,
                                       NSArray<NSString *> * _Nullable warnings,
                                       NSError * _Nullable error) {
  if (error || shortURL == nil) { return; }
  NSLog(@"The short URL is: %@", shortURL);
}];

डिफ़ॉल्ट रूप से, डायनामिक लिंक आपके ऐप के बंडल आइडेंटिफ़ायर का उपयोग आपके एप्लिकेशन को खोलने के लिए आवश्यक URL योजना के रूप में करते हैं। हम अनुशंसा करते हैं कि आपके कार्यान्वयन को सरल बनाए रखने के लिए इस डिफ़ॉल्ट मान के साथ बने रहें।

हालांकि, जो डेवलपर पहले से ही अन्य उद्देश्यों के लिए एक कस्टम यूआरएल योजना का उपयोग कर रहे हैं, वे अपने डायनामिक लिंक के लिए भी इसी कस्टम यूआरएल योजना का उपयोग करना चाहेंगे। यदि आप इस स्थिति में हैं, तो आप इन चरणों का पालन करके अपने फायरबेस डायनामिक लिंक के लिए एक अलग यूआरएल योजना निर्दिष्ट कर सकते हैं:

  1. जब आपके एप्लिकेशन की स्थापना, सुनिश्चित करें कि आप सामान्य URL योजना निर्दिष्ट अपने कॉन्फ़िगर करने से पहले अपने आवेदन के द्वारा प्रयोग की जाने वाली कर FirebaseApp साझा उदाहरण:

    तीव्र

    func application(_ application: UIApplication,
                     didFinishLaunchingWithOptions launchOptions: [UIApplication
                       .LaunchOptionsKey: Any]?) -> Bool {
      // Set deepLinkURLScheme to the custom URL scheme you defined in your
      // Xcode project.
      FirebaseOptions.defaultOptions()?.deepLinkURLScheme = customURLScheme
      FirebaseApp.configure()
    
      return true
    }
    

    उद्देश्य सी

    - (BOOL)application:(UIApplication *)application
        didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
      // Set deepLinkURLScheme to the custom URL scheme you defined in your
      // Xcode project.
      [FIROptions defaultOptions].deepLinkURLScheme = CUSTOM_URL_SCHEME;
      [FIRApp configure];
    
      return YES;
    }
  2. जब भी आप कोई डायनामिक लिंक बनाते हैं, तो आपको उस कस्टम URL योजना को निर्दिष्ट करना होगा जिसका उपयोग आपका ऐप करता है। आप Firebase कंसोल से ऐसा कर सकते हैं, की स्थापना customScheme , बिल्डर एपीआई में निर्दिष्ट ius अपने URL में पैरामीटर, या भेजना iosCustomScheme REST API का पैरामीटर

अगला कदम

अब जब आपने डायनामिक लिंक बना लिया है, तो आपको डायनामिक लिंक प्राप्त करने के लिए अपना ऐप सेट करना होगा और उपयोगकर्ता द्वारा खोले जाने के बाद उपयोगकर्ताओं को अपने ऐप में सही जगह पर भेजना होगा।

आपके एप्लिकेशन में गतिशील लिंक प्राप्त करने के लिए दस्तावेज़ देखें आईओएस , एंड्रॉयड , सी ++ , और एकता