আপনার তৈরি করা Firebase Dynamic Links পেতে, আপনার অ্যাপে Dynamic Links SDK অন্তর্ভুক্ত করতে হবে এবং আপনার অ্যাপ লোড হওয়ার সময় handleUniversalLink: এবং dynamicLinkFromCustomSchemeURL: পদ্ধতিগুলি কল করতে হবে যাতে Dynamic Link এ ডেটা পাস করা যায়।
পূর্বশর্ত
শুরু করার আগে, আপনার iOS প্রকল্পে Firebase যোগ করতে ভুলবেন না।
Firebase এবং Dynamic Links SDK সেট আপ করুন
ফায়ারবেস নির্ভরতা ইনস্টল এবং পরিচালনা করতে সুইফট প্যাকেজ ম্যানেজার ব্যবহার করুন।
- Xcode-এ, আপনার অ্যাপ প্রজেক্ট খোলা থাকা অবস্থায়, File > Add Packages- এ নেভিগেট করুন।
- অনুরোধ করা হলে, Firebase Apple platforms SDK সংগ্রহস্থল যোগ করুন:
- Dynamic Links লাইব্রেরিটি নির্বাচন করুন।
- আপনার টার্গেটের বিল্ড সেটিংসের অন্যান্য লিঙ্কার ফ্ল্যাগ বিভাগে
-ObjCফ্ল্যাগ যোগ করুন। - Dynamic Links এর সর্বোত্তম অভিজ্ঞতার জন্য, আমরা আপনার Firebase প্রোজেক্টে Google Analytics সক্ষম করার এবং আপনার অ্যাপে Google Analytics এর জন্য Firebase SDK যোগ করার পরামর্শ দিচ্ছি। আপনি IDFA সংগ্রহ ছাড়াই অথবা IDFA সংগ্রহ সহ লাইব্রেরি নির্বাচন করতে পারেন। Firebase SDK এর জন্য Google Analytics এর সর্বশেষ মডিউল সংগঠন সম্পর্কে আমাদের প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী দেখুন।
- শেষ হয়ে গেলে, Xcode স্বয়ংক্রিয়ভাবে ব্যাকগ্রাউন্ডে আপনার নির্ভরতাগুলি সমাধান এবং ডাউনলোড করা শুরু করবে।
https://github.com/firebase/firebase-ios-sdk.git
এখন, কিছু কনফিগারেশন ধাপ সম্পাদন করুন:
- Firebase কনসোলে , Dynamic Links বিভাগটি খুলুন। যদি আপনাকে অনুরোধ করা হয় তবে পরিষেবার শর্তাবলী গ্রহণ করুন।
আপনার অ্যাপের সেটিংসে আপনার অ্যাপের অ্যাপ স্টোর আইডি এবং অ্যাপ আইডি প্রিফিক্স নির্দিষ্ট করা আছে কিনা তা নিশ্চিত করুন। আপনার অ্যাপের সেটিংস দেখতে এবং সম্পাদনা করতে, আপনার Firebase প্রোজেক্টের সেটিংস পৃষ্ঠায় যান এবং আপনার iOS অ্যাপটি নির্বাচন করুন।
আপনার iOS অ্যাপে Dynamic Links ব্যবহারের জন্য আপনার Firebase প্রজেক্টটি সঠিকভাবে কনফিগার করা আছে কিনা তা আপনি নিম্নলিখিত URL টি খুলে নিশ্চিত করতে পারেন:
https://your_dynamic_links_domain/apple-app-site-association
যদি আপনার অ্যাপটি সংযুক্ত থাকে,
apple-app-site-associationফাইলটিতে আপনার অ্যাপের অ্যাপ আইডি প্রিফিক্স এবং বান্ডেল আইডির একটি রেফারেন্স থাকবে। উদাহরণস্বরূপ:{"applinks":{"apps":[],"details":[{"appID":"1234567890.com.example.ios","paths":["NOT /_/*","/*"]}]}}যদি
detailsক্ষেত্রটি খালি থাকে, তাহলে আপনার অ্যাপ আইডি প্রিফিক্স নির্দিষ্ট করেছেন কিনা তা দুবার পরীক্ষা করে দেখুন। মনে রাখবেন যে আপনার অ্যাপ আইডি প্রিফিক্স আপনার টিম আইডির মতো নাও হতে পারে।ঐচ্ছিক : iOS পেস্টবোর্ডের Dynamic Links SDK ব্যবহার বন্ধ করুন।
ডিফল্টরূপে, Dynamic Links SDK ইনস্টল-পরবর্তী ডিপ লিঙ্কগুলির নির্ভরযোগ্যতা উন্নত করতে পেস্টবোর্ড ব্যবহার করে। পেস্টবোর্ড ব্যবহার করে, Dynamic Links নিশ্চিত করতে পারে যে যখন কোনও ব্যবহারকারী একটি Dynamic Link খোলেন কিন্তু প্রথমে আপনার অ্যাপটি ইনস্টল করতে হয়, তখন ইনস্টলেশনের পরে প্রথমবার অ্যাপটি খোলার সময় ব্যবহারকারী তাৎক্ষণিকভাবে মূল লিঙ্কযুক্ত সামগ্রীতে যেতে পারেন।
এর নেতিবাচক দিক হল, iOS 14 এবং তার পরবর্তী সংস্করণগুলিতে পেস্টবোর্ড ব্যবহারের ফলে একটি বিজ্ঞপ্তি আসে। সুতরাং, ব্যবহারকারীরা যখন প্রথমবার আপনার অ্যাপটি খুলবেন, যদি পেস্টবোর্ডে একটি URL থাকে, তাহলে তারা একটি বিজ্ঞপ্তি দেখতে পাবেন যে আপনার অ্যাপটি পেস্টবোর্ড অ্যাক্সেস করেছে, যা বিভ্রান্তির কারণ হতে পারে।
এই আচরণটি অক্ষম করতে, আপনার Xcode প্রকল্পের
Info.plistফাইলটি সম্পাদনা করুন এবংFirebaseDeepLinkPasteboardRetrievalEnabledকীটিNOতে সেট করুন।
আপনার অ্যাপে Dynamic Links খুলুন
- আপনার অ্যাপের Xcode প্রজেক্টের Info ট্যাবে, Dynamic Links এর জন্য ব্যবহার করার জন্য একটি নতুন URL টাইপ তৈরি করুন। Identifier ফিল্ডটিকে একটি অনন্য মান এবং URL স্কিম ফিল্ডটিকে আপনার বান্ডেল আইডেন্টিফায়ার হিসেবে সেট করুন, যা Dynamic Links দ্বারা ব্যবহৃত ডিফল্ট URL স্কিম।
- আপনার অ্যাপের Xcode প্রজেক্টের Capabilities ট্যাবে, Associated Domains সক্ষম করুন এবং Associated Domains তালিকায় নিম্নলিখিতগুলি যোগ করুন:
applinks:your_dynamic_links_domain
- যদি আপনি সম্পূর্ণ কাস্টম ডোমেন সহ Dynamic Links পেতে চান, তাহলে আপনার Xcode প্রজেক্টের
Info.plistফাইলেFirebaseDynamicLinksCustomDomainsনামে একটি কী তৈরি করুন এবং এটি আপনার অ্যাপের Dynamic Links URL প্রিফিক্সে সেট করুন। উদাহরণস্বরূপ:FirebaseDynamicLinksCustomDomains https://example.com/promos https://example.com/links/share - আপনার
UIApplicationDelegateএFirebaseCoreমডিউলটি আমদানি করুন, সেইসাথে আপনার অ্যাপ প্রতিনিধিদের দ্বারা ব্যবহৃত অন্য যেকোনো Firebase মডিউল । উদাহরণস্বরূপ, Cloud Firestore এবং Authentication ব্যবহার করতে:সুইফটইউআই
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
সুইফট
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
অবজেক্টিভ-সি
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- আপনার অ্যাপ ডেলিগেটের
application(_:didFinishLaunchingWithOptions:)পদ্ধতিতে একটিFirebaseAppশেয়ার করা ইনস্ট্যান্স কনফিগার করুন:সুইফটইউআই
// Use Firebase library to configure APIs FirebaseApp.configure()
সুইফট
// Use Firebase library to configure APIs FirebaseApp.configure()
অবজেক্টিভ-সি
// Use Firebase library to configure APIs [FIRApp configure];
- যদি আপনি SwiftUI ব্যবহার করেন, তাহলে আপনাকে একটি অ্যাপ্লিকেশন ডেলিগেট তৈরি করতে হবে এবং
UIApplicationDelegateAdaptorঅথবাNSApplicationDelegateAdaptorমাধ্যমে আপনারAppস্ট্রাক্টের সাথে এটি সংযুক্ত করতে হবে। আপনাকে অ্যাপ ডেলিগেট সুইজলিংও অক্ষম করতে হবে। আরও তথ্যের জন্য, SwiftUI নির্দেশাবলী দেখুন।সুইফটইউআই
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
- এরপর,
application:continueUserActivity:restorationHandler:পদ্ধতিতে, অ্যাপটি ইতিমধ্যেই ইনস্টল থাকা অবস্থায় প্রাপ্ত লিঙ্কগুলিকে Universal Links হিসেবে পরিচালনা করুন:সুইফট
দ্রষ্টব্য: এই পণ্যটি macOS, Mac Catalyst, 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, Mac Catalyst, 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
> *_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; } - অবশেষে,
application:openURL:options:এ আপনার অ্যাপের কাস্টম URL স্কিমের মাধ্যমে প্রাপ্ত লিঙ্কগুলি পরিচালনা করুন। ইনস্টলেশনের পরে যখন আপনার অ্যাপটি প্রথমবার খোলা হয় তখন এই পদ্ধতিটি বলা হয়।যদি আপনার অ্যাপের প্রথম লঞ্চে Dynamic Link খুঁজে না পাওয়া যায়, তাহলে
DynamicLinkএরurlnilএ সেট করে এই পদ্ধতিটি কল করা হবে, যা নির্দেশ করে যে SDK একটি ম্যাচিং পেন্ডিং Dynamic Link খুঁজে পাওয়া ব্যর্থ হয়েছে।সুইফট
দ্রষ্টব্য: এই পণ্যটি macOS, Mac Catalyst, 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, Mac Catalyst, tvOS, অথবা watchOS টার্গেটগুলিতে উপলব্ধ নয়।- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary
*)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; }