iOS SDK অ্যাডভান্সড ইন্টিগ্রেশন গাইড
এই বিভাগটি Pushwoosh iOS SDK-এর অ্যাডভান্সড ইন্টিগ্রেশন সম্পর্কে তথ্য প্রদান করে।
ব্যাকগ্রাউন্ড মোড
Anchor link toএই কার্যকারিতা সক্ষম করতে, আপনাকে আপনার প্রজেক্টে ব্যাকগ্রাউন্ড মোড যোগ করতে হবে।
ব্যাকগ্রাউন্ড মোড সক্রিয় করার পদক্ষেপ
Anchor link to- আপনার প্রজেক্টটি Xcode-এ খুলুন এবং Project Navigator-এ এটি নির্বাচন করুন।
- বাম প্যানেল থেকে আপনার অ্যাপ টার্গেটটি বেছে নিন।
- Signing & Capabilities ট্যাবে নেভিগেট করুন।
- উপরের-বাম কোণে + Capability বোতামে ক্লিক করুন।
- তালিকা থেকে Background Modes অনুসন্ধান করুন এবং নির্বাচন করুন।
- Background Modes বিভাগে, বক্সটি চেক করে Remote notifications সক্রিয় করুন।
একবার সম্পন্ন হলে, আপনার অ্যাপ ব্যাকগ্রাউন্ডে চলার সময় সাইলেন্ট পুশ নোটিফিকেশন সহ পুশ নোটিফিকেশনগুলি পরিচালনা করতে সক্ষম হবে।
ফোরগ্রাউন্ড মোড
Anchor link toডিফল্টরূপে, Pushwoosh iOS SDK অ্যাপটি ফোরগ্রাউন্ডে চলার সময় নোটিফিকেশন ব্যানার প্রদর্শন করে।
আপনি আপনার কোডে (অর্থাৎ, আপনার AppDelegate-এ) নিম্নলিখিত বুলিয়ান ফ্ল্যাগ সেট করে এই আচরণটি নিয়ন্ত্রণ করতে পারেন:
// Set false to disable foreground notifications, true to enable itPushwoosh.sharedInstance().showPushnotificationAlert = true// Set 0 to disable foreground notifications, 1 to enable it[[Pushwoosh sharedInstance] setShowPushnotificationAlert:0];লগ লেভেল
Anchor link toPushwoosh iOS SDK নিম্নলিখিত লগিং লেভেল সমর্থন করে:
NONE- SDK থেকে কোনো লগ নেই।ERROR- কনসোলে শুধুমাত্র ত্রুটির বার্তা প্রদর্শন করে।WARNING- ত্রুটির পাশাপাশি সতর্কতা প্রদর্শন করে।INFO- তথ্যমূলক বার্তা অন্তর্ভুক্ত করে (ডিফল্ট সেটিং)।DEBUG- বিস্তারিত ডিবাগ তথ্য অন্তর্ভুক্ত করে।
ডিফল্টরূপে, লগিং লেভেল INFO-তে সেট করা থাকে, যা নিশ্চিত করে যে SDK ডেভেলপার কনসোলকে বিশৃঙ্খল না করে প্রাসঙ্গিক তথ্য প্রদান করে।
লগিং লেভেল পরিবর্তন করতে, আপনার অ্যাপের Info.plist ফাইলে Pushwoosh_LOG_LEVEL কী আপডেট করুন:
<key>Pushwoosh_LOG_LEVEL</key><string>YOUR_LOG_LEVEL</string>বিকল্পভাবে, আপনি নীচের কোড স্নিপেট ব্যবহার করে লগ লেভেল পরিবর্তন করতে পারেন:
Pushwoosh.Debug.setLogLevel(.PW_LL_DEBUG)YOUR_LOG_LEVEL-কে কাঙ্ক্ষিত লেভেল (যেমন, DEBUG বা ERROR) দিয়ে প্রতিস্থাপন করুন।
কাস্টম UNNotificationCenterDelegate
Anchor link toআপনি যদি আপনার নিজস্ব UNNotificationCenterDelegate ব্যবহার করতে চান (উদাহরণস্বরূপ, লোকাল নোটিফিকেশনের জন্য), তাহলে সঠিক আচরণের জন্য আপনাকে Pushwoosh SDK-কে এটি সম্পর্কে জানাতে হবে। আপনি Pushwoosh ইনস্ট্যান্সের notificationCenterDelegateProxy প্রপার্টি দিয়ে এটি করতে পারেন:
Pushwoosh.sharedInstance().notificationCenterDelegateProxy?.add(my_delegate)[Pushwoosh.sharedInstance.notificationCenterDelegateProxy addNotificationCenterDelegate:my_delegate];তারপর, আপনার ডেলিগেটে UNNotificationCenterDelegate মেথডগুলি ইমপ্লিমেন্ট করুন:
func userNotificationCenter( _ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) { if (!PWMessage.isPushwooshMessage(notification.request.content.userInfo)) { // Handle your notification completionHandler(UNNotificationPresentationOptions.alert) }}
func userNotificationCenter( _ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) { if (!PWMessage.isPushwooshMessage(response.notification.request.content.userInfo)) { // Handle your notification completionHandler() }}- (void)userNotificationCenter:(UNNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler { if (![PWMessage isPushwooshMessage:notification.request.content.userInfo]) { // Handle your message completionHandler(UNNotificationPresentationOptionAlert); }}
- (void)userNotificationCenter:(UNNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler { if (![PWMessage.isPushwooshMessage:response.notification.request.content.userInfo]) { // Handle your message completionHandler(); }}Pushwoosh লেজি ইনিশিয়ালাইজেশন
Anchor link toPushwoosh_LAZY_INITIALIZATION ফ্ল্যাগটি অ্যাপ্লিকেশন শুরু হওয়ার সময় Pushwoosh SDK-এর স্বয়ংক্রিয় ইনিশিয়ালাইজেশন প্রতিরোধ করে। এটি Pushwoosh SDK পরিষেবাগুলি কখন শুরু হবে তার উপর আরও নিয়ন্ত্রণ দেয়।
যখন এই ফ্ল্যাগটি সক্রিয় করা হয়, Pushwoosh iOS SDK মেথডগুলি স্পষ্টভাবে কল না করা পর্যন্ত Pushwoosh SDK তার পরিষেবাগুলি শুরু করে না।
Info.plist-এ নিম্নলিখিত এন্ট্রি যোগ করুন:
<key>Pushwoosh_LAZY_INITIALIZATION</key><true/>ব্যবহারের ক্ষেত্র
-
নিয়ন্ত্রিত SDK ইনিশিয়ালাইজেশন – Pushwoosh_LAZY_INITIALIZATION ফ্ল্যাগ Pushwoosh SDK স্টার্টআপ বিলম্বিত করার অনুমতি দেয়, যা পুশ পরিষেবাগুলি কখন সক্রিয় হবে তার উপর আরও নিয়ন্ত্রণ দেয়।
-
বিলম্বিত পুশ অ্যাক্টিভেশন – কিছু অ্যাপ্লিকেশনে, পুশ নোটিফিকেশনগুলি শুধুমাত্র নির্দিষ্ট শর্তে ইনিশিয়ালাইজ করা উচিত। এই ফ্ল্যাগটি সক্রিয় করা নিশ্চিত করে যে Pushwoosh SDK শুধুমাত্র স্পষ্টভাবে অনুরোধ করা হলেই শুরু হবে।
-
ব্যবহারকারী-নির্দিষ্ট পুশ কনফিগারেশন – কিছু অ্যাপ্লিকেশনের ব্যবহারকারীর পছন্দ বা অ্যাকাউন্ট সেটিংসের উপর ভিত্তি করে পুশ নোটিফিকেশন সেটিংস কাস্টমাইজ করার প্রয়োজন হতে পারে। লেজি ইনিশিয়ালাইজেশনের সাথে, উপযুক্ত কনফিগারেশন নির্ধারণ করার পরেই Pushwoosh SDK শুরু হয়।
Info.plist প্রপার্টিগুলির সম্পূর্ণ তালিকা
Anchor link to| Property | Description | Possible Values |
|---|---|---|
Pushwoosh_APPID | প্রোডাকশন বিল্ডের জন্য Pushwoosh অ্যাপ্লিকেশন আইডি সেট করে। | XXXXX-XXXXX Type: String |
Pushwoosh_APPID_Dev | ডেভেলপমেন্ট বিল্ডের জন্য Pushwoosh অ্যাপ্লিকেশন আইডি সেট করে। | XXXXX-XXXXX Type: String |
Pushwoosh_SHOW_ALERT | নোটিফিকেশন ফোরগ্রাউন্ড অ্যালার্ট দেখায়। | YES (default) / NO Type: Boolean |
Pushwoosh_ALERT_TYPE | নোটিফিকেশন অ্যালার্ট স্টাইল সেট করে। | BANNER (default) / ALERT / NONE Type: String |
Pushwoosh_BASEURL | Pushwoosh সার্ভার বেস URL ওভাররাইড করে। | https://cp.pushwoosh.com/json/1.3/ (default) Type: String |
Pushwoosh_AUTO_ACCEPT_DEEP_LINK_FOR_SILENT_PUSH | যদি YES হয়, সাইলেন্ট পুশে প্রাপ্ত ডিপ লিঙ্কগুলি স্বয়ংক্রিয়ভাবে প্রসেস করা হবে। | YES (default) / NO Type: Boolean |
Pushwoosh_ALLOW_SERVER_COMMUNICATION | SDK-কে Pushwoosh সার্ভারে নেটওয়ার্ক অনুরোধ পাঠানোর অনুমতি দেয়। | YES (default) / NO Type: Boolean |
Pushwoosh_ALLOW_COLLECTING_DEVICE_DATA | SDK-কে ডিভাইস ডেটা (OS সংস্করণ, লোকেল, এবং মডেল) সংগ্রহ করে সার্ভারে পাঠানোর অনুমতি দেয়। | YES (default) / NO Type: Boolean |
Pushwoosh_ALLOW_COLLECTING_DEVICE_OS_VERSION | SDK-কে ডিভাইসের OS সংস্করণ সংগ্রহ করে সার্ভারে পাঠানোর অনুমতি দেয়। | YES (default) / NO Type: Boolean |
Pushwoosh_ALLOW_COLLECTING_DEVICE_LOCALE | SDK-কে ডিভাইস লোকেল সংগ্রহ করে সার্ভারে পাঠানোর অনুমতি দেয়। | YES (default) / NO Type: Boolean |
Pushwoosh_ALLOW_COLLECTING_DEVICE_MODEL | SDK-কে ডিভাইস মডেল সংগ্রহ করে সার্ভারে পাঠানোর অনুমতি দেয়। | YES (default) / NO Type: Boolean |
Pushwoosh_ALLOW_COLLECTING_SCREEN_NAME | SDK-কে PW_ScreenOpen, PW_UserIdle, এবং PW_ApplicationExit ইভেন্টগুলিতে বর্তমান স্ক্রিনের নাম সংযুক্ত করার অনুমতি দেয়। | YES (default) / NO Type: Boolean |
Pushwoosh_LOG_LEVEL | Pushwoosh SDK লগিং লেভেল। বিস্তারিত জানতে, লগ লেভেল নিয়ন্ত্রণ দেখুন। | NONE / ERROR / WARNING / INFO (default) / DEBUG / VERBOSE Type: String |
Pushwoosh_PURCHASE_TRACKING_ENABLED | SDK-কে ইন-অ্যাপ কেনাকাটা ট্র্যাক করার অনুমতি দেয়। Customer Journey Builder-এর জন্য প্রয়োজন। | YES / NO (default) Type: Boolean |
যে প্ল্যাটফর্মগুলি Info.plist সম্পাদনা করতে পারে না (Cordova, OutSystems), তার পরিবর্তে রানটাইম সমতুল্য ব্যবহার করুন: Pushwoosh.configure.setAllowCollectingScreenName:।