Catch up on everthing we announced at this year's Firebase Summit. Learn more

আইওএসে ডায়নামিক লিঙ্কগুলি পান

Firebase ডায়নামিক লিংক গ্রহণ করতে যে আপনার তৈরি করা , আপনি আপনার app এর মধ্যে ডায়নামিক লিংক SDK এর অন্তর্ভুক্ত করা এবং কল করতে হবে handleUniversalLink: এবং dynamicLinkFromCustomSchemeURL: পদ্ধতি যখন আপনার অ্যাপ্লিকেশন লোড ডেটা ডাইনামিক লিংক পাস জন্য।

পূর্বশর্ত

শুরু করার আগে, নিশ্চিত করুন আপনার iOS প্রকল্পে Firebase যোগ

ফায়ারবেস নির্ভরতা ইনস্টল এবং পরিচালনা করতে সুইফট প্যাকেজ ম্যানেজার ব্যবহার করুন।

  1. Xcode ক্ষেত্রে File খোলা আপনার অ্যাপ প্রকল্পের, নেভিগেট সঙ্গে> সুইফট প্যাকেজগুলি> প্যাকেজ নির্ভরতা যুক্ত করো।
  2. অনুরোধ করা হলে, Firebase Apple প্ল্যাটফর্ম SDK সংগ্রহস্থল যোগ করুন:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. ডায়নামিক লিংক লাইব্রেরি বেছে নিন।
  5. ডায়নামিক লিংক সঙ্গে একটি অনুকূল অভিজ্ঞতার জন্য, আমরা প্রস্তাব Google এনালিটিক্স সক্রিয় আপনার Firebase প্রকল্পে এবং আপনার অ্যাপ্লিকেশানে Google এনালিটিক্স জন্য Firebase SDK এর যোগ। আপনি IDFA সংগ্রহ ছাড়াই অথবা IDFA সংগ্রহের মাধ্যমে লাইব্রেরি নির্বাচন করতে পারেন।
  6. শেষ হয়ে গেলে, Xcode স্বয়ংক্রিয়ভাবে পটভূমিতে আপনার নির্ভরতাগুলি সমাধান এবং ডাউনলোড করা শুরু করবে।

এখন, কিছু কনফিগারেশন পদক্ষেপ সম্পাদন করুন:

  1. ইন Firebase কনসোল , ডায়নামিক লিংক অধ্যায় খুলুন। পরিষেবার শর্তাবলী স্বীকার করুন যদি আপনাকে তা করতে বলা হয়।
  2. নিশ্চিত করুন যে আপনার অ্যাপের অ্যাপ স্টোর আইডি এবং আপনার অ্যাপ আইডি প্রিফিক্স আপনার অ্যাপের সেটিংসে নির্দিষ্ট করা আছে। দেখতে এবং সম্পাদনা আপনার অ্যাপ্লিকেশনের সেটিংস, আপনার Firebase প্রকল্পের যেতে সেটিংস পৃষ্ঠা এবং আপনার iOS অ্যাপ্লিকেশন নির্বাচন করুন।

    আপনি নিশ্চিত করতে পারেন যে আপনার Firebase প্রোজেক্টটি আপনার iOS অ্যাপে ডায়নামিক লিঙ্ক ব্যবহার করার জন্য সঠিকভাবে কনফিগার করা হয়েছে নিচের URLটি খুলে:

    https://your_dynamic_links_domain/apple-app-site-association

    আপনার অ্যাপ্লিকেশন সংযুক্ত করা হয়, তাহলে apple-app-site-association ফাইল আপনার অ্যাপ্লিকেশনের অ্যাপ আইডি উপসর্গ ও বান্ডিল আইডি একটি রেফারেন্স রয়েছে। উদাহরণ স্বরূপ:

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

    তাহলে details ক্ষেত্রটি খালি, দুবার-যাচাই করুন যে আপনি আপনার অ্যাপ আইডি উপসর্গ নির্দিষ্ট। মনে রাখবেন আপনার অ্যাপ আইডি প্রিফিক্স আপনার টিম আইডির মতো নাও হতে পারে।

  3. ঐচ্ছিক: আইওএস পিজবোর্ড এর অক্ষম ডায়নামিক লিংক SDK এর অ্যাকাউন্ট ব্যবহার করুন।

    ডিফল্টরূপে, ডাইনামিক লিঙ্ক SDK পেস্টবোর্ড ব্যবহার করে পোস্ট-ইনস্টল গভীর লিঙ্কগুলির নির্ভরযোগ্যতা উন্নত করতে। পেস্টবোর্ড ব্যবহার করে, ডায়নামিক লিঙ্কগুলি নিশ্চিত করতে পারে যে যখন কোনও ব্যবহারকারী একটি ডায়নামিক লিঙ্ক খোলে কিন্তু প্রথমে আপনার অ্যাপটি ইনস্টল করতে হবে, ইনস্টলেশনের পরে প্রথমবার অ্যাপটি খোলার সময় ব্যবহারকারী অবিলম্বে মূল লিঙ্কযুক্ত সামগ্রীতে যেতে পারেন।

    এর নেতিবাচক দিক হল যে পেস্টবোর্ড ব্যবহার iOS 14 এবং পরবর্তীতে একটি বিজ্ঞপ্তি ট্রিগার করে। সুতরাং, প্রথমবার ব্যবহারকারীরা আপনার অ্যাপটি খুললে, পেস্টবোর্ডে একটি ডায়নামিক লিঙ্ক URL থাকলে, তারা একটি বিজ্ঞপ্তি দেখতে পাবে যে আপনার অ্যাপটি পেস্টবোর্ড অ্যাক্সেস করেছে, যা বিভ্রান্তির কারণ হতে পারে।

    এই আচরণ, সম্পাদনা আপনার Xcode প্রকল্পের অক্ষম করতে Info.plist ফাইল এবং সেট FirebaseDeepLinkPasteboardRetrievalEnabled চাবিকাঠি NO

  1. আপনার অ্যাপ্লিকেশনের Xcode প্রকল্পের তথ্য ট্যাবে, ডায়নামিক লিংক জন্য ব্যবহার করা হবে একটি নতুন URL টাইপ তৈরি করুন। একটি অনন্য মান এবং URL স্কিম মাঠে আইডেন্টিফাইয়ার ক্ষেত্র সেট আপনার বান্ডিল শনাক্তকারী, যা ডিফল্টভাবে URL টি ডায়নামিক লিংক দ্বারা ব্যবহৃত স্কীম যাবে।
  2. আপনার অ্যাপ্লিকেশনের Xcode প্রকল্পের কেপেবিলিটিস ট্যাবে, অ্যাসোসিয়েটেড ডোমেন সক্ষম এবং অ্যাসোসিয়েটেড ডোমেন লিস্টে নিম্নলিখিত যোগ করুন:
    applinks:your_dynamic_links_domain
  3. আপনি যদি একটি সঙ্গে ডায়নামিক লিংক পেতে না চান তাহলে সম্পূর্ণ-কাস্টম ডোমেন , আপনার Xcode প্রকল্পের মধ্যে Info.plist ফাইল, একটি কী বলা তৈরি FirebaseDynamicLinksCustomDomains এবং আপনার অ্যাপ্লিকেশনের ডায়নামিক লিংক URL উপসর্গ তা সেট। : উদাহরণস্বরূপ
    FirebaseDynamicLinksCustomDomains
    
      https://example.com/promos
      https://example.com/links/share
    
    
  4. আপনার Firebase মডিউল আমদানি UIApplicationDelegate :

    সুইফট

    import Firebase

    উদ্দেশ্য গ

    @import Firebase;
  5. কনফিগার একটি FirebaseApp , উদাহরণস্বরূপ ভাগ সাধারণত আপনার অ্যাপ্লিকেশনের মধ্যে application:didFinishLaunchingWithOptions: পদ্ধতি:

    সুইফট

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

    উদ্দেশ্য গ

    // Use Firebase library to configure APIs
    [FIRApp configure];
  6. এর পরে, মধ্যে application:continueUserActivity:restorationHandler: পদ্ধতি, হাতল লিঙ্ক হিসাবে গৃহীত ইউনিভার্সাল লিংক যখন অ্যাপ্লিকেশান ইতিমধ্যেই (iOS 9 এর উপর এবং নতুন) ইনস্টল হয়:

    সুইফট

    নোট: এই পণ্য MacOS, ম্যাক ক্যাটালিস্ট, tvOS, অথবা watchOS লক্ষ্যমাত্রা উপলব্ধ নেই।
    func application(_ application: UIApplication, continue userActivity: NSUserActivity,
                     restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
      let handled = DynamicLinks.dynamicLinks()
        .handleUniversalLink(userActivity.webpageURL!) { dynamiclink, error in
          // ...
        }
    
      return handled
    }
    

    উদ্দেশ্য গ

    নোট: এই পণ্য MacOS, ম্যাক ক্যাটালিস্ট, tvOS, অথবা watchOS লক্ষ্যমাত্রা উপলব্ধ নেই।
    - (BOOL)application:(UIApplication *)application
    continueUserActivity:(nonnull NSUserActivity *)userActivity
     restorationHandler:
    #if defined(__IPHONE_12_0) && (__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_12_0)
    (nonnull void (^)(NSArray<id<UIUserActivityRestoring>> *_Nullable))restorationHandler {
    #else
        (nonnull void (^)(NSArray *_Nullable))restorationHandler {
    #endif  // __IPHONE_12_0
      BOOL handled = [[FIRDynamicLinks dynamicLinks] handleUniversalLink:userActivity.webpageURL
                                                              completion:^(FIRDynamicLink * _Nullable dynamicLink,
                                                                           NSError * _Nullable error) {
                                                                // ...
                                                              }];
      return handled;
    }
  7. অবশেষে, মধ্যে application:openURL:sourceApplication:annotation: (প্রয়োজন iOS 8 এবং বয়স্ক) এবং application:openURL:options: (প্রয়োজন iOS 9 ও উন্নততর) পদ্ধতি, হাতল সংযোগগুলি আপনার অ্যাপ্লিকেশনের কাস্টম URL স্কিম মাধ্যমে লাভ করেন। এই পদ্ধতিগুলিকে বলা হয় যখন আপনার অ্যাপটি iOS 8 এবং তার বেশি বয়সে একটি লিঙ্ক পায় এবং যখন iOS-এর যেকোনো সংস্করণে ইনস্টল করার পর প্রথমবার আপনার অ্যাপ খোলা হয়।

    ডাইনামিক লিংক আপনার অ্যাপ্লিকেশনের প্রথম লঞ্চ উপর (যেকোনো iOS সংস্করণ দিকে) না পাওয়া যায়, তাহলে এই পদ্ধতিতে বলা হবে FIRDynamicLink এর url সেট nil , যা নির্দেশ করে SDK এর একটি মানানসই মুলতুবী ডাইনামিক লিংক খুঁজতে ব্যর্থ হয়েছি।

    সুইফট

    নোট: এই পণ্য MacOS, ম্যাক ক্যাটালিস্ট, tvOS, অথবা watchOS লক্ষ্যমাত্রা উপলব্ধ নেই।
    @available(iOS 9.0, *)
    func application(_ app: UIApplication, open url: URL,
                     options: [UIApplication.OpenURLOptionsKey: Any]) -> Bool {
      return application(app, open: url,
                         sourceApplication: options[UIApplication.OpenURLOptionsKey
                           .sourceApplication] as? String,
                         annotation: "")
    }
    
    func application(_ application: UIApplication, open url: URL, sourceApplication: String?,
                     annotation: Any) -> Bool {
      if let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url) {
        // Handle the deep link. For example, show the deep-linked content or
        // apply a promotional offer to the user's account.
        // ...
        return true
      }
      return false
    }
    

    উদ্দেশ্য গ

    নোট: এই পণ্য MacOS, ম্যাক ক্যাটালিস্ট, tvOS, অথবা watchOS লক্ষ্যমাত্রা উপলব্ধ নেই।
    - (BOOL)application:(UIApplication *)app
                openURL:(NSURL *)url
                options:(NSDictionary<NSString *, id> *)options {
      return [self application:app
                       openURL:url
             sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
                    annotation:options[UIApplicationOpenURLOptionsAnnotationKey]];
    }
    
    - (BOOL)application:(UIApplication *)application
                openURL:(NSURL *)url
      sourceApplication:(NSString *)sourceApplication
             annotation:(id)annotation {
      FIRDynamicLink *dynamicLink = [[FIRDynamicLinks dynamicLinks] dynamicLinkFromCustomSchemeURL:url];
    
      if (dynamicLink) {
        if (dynamicLink.url) {
          // Handle the deep link. For example, show the deep-linked content,
          // apply a promotional offer to the user's account or show customized onboarding view.
          // ...
        } else {
          // Dynamic link has empty deep link. This situation will happens if
          // Firebase Dynamic Links iOS SDK tried to retrieve pending dynamic link,
          // but pending link is not available for this device/App combination.
          // At this point you may display default onboarding view.
        }
        return YES;
      }
      return NO;
    }