বিষয়বস্তুতে যান

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-এ) নিম্নলিখিত বুলিয়ান ফ্ল্যাগ সেট করে এই আচরণ নিয়ন্ত্রণ করতে পারেন:

// ফোরগ্রাউন্ড নোটিফিকেশন নিষ্ক্রিয় করতে false এবং সক্রিয় করতে true সেট করুন
Pushwoosh.sharedInstance().showPushnotificationAlert = true

লগ লেভেল

Anchor link to

Pushwoosh 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)

তারপর, আপনার ডেলিগেটে UNNotificationCenterDelegate মেথডগুলি ইমপ্লিমেন্ট করুন:

func userNotificationCenter(
_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void
) {
if (!PWMessage.isPushwooshMessage(notification.request.content.userInfo)) {
// আপনার নোটিফিকেশন হ্যান্ডেল করুন
completionHandler(UNNotificationPresentationOptions.alert)
}
}
func userNotificationCenter(
_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void
) {
if (!PWMessage.isPushwooshMessage(response.notification.request.content.userInfo)) {
// আপনার নোটিফিকেশন হ্যান্ডেল করুন
completionHandler()
}
}

Pushwoosh লেজি ইনিশিয়ালাইজেশন

Anchor link to

Pushwoosh_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
প্রপার্টিবিবরণসম্ভাব্য মান
Pushwoosh_APPIDপ্রোডাকশন বিল্ডের জন্য Pushwoosh অ্যাপ্লিকেশন আইডি সেট করে।XXXXX-XXXXX
টাইপ: স্ট্রিং
Pushwoosh_APPID_Devডেভেলপমেন্ট বিল্ডের জন্য Pushwoosh অ্যাপ্লিকেশন আইডি সেট করে।XXXXX-XXXXX
টাইপ: স্ট্রিং
Pushwoosh_SHOW_ALERTনোটিফিকেশন ফোরগ্রাউন্ড অ্যালার্ট দেখায়।YES (ডিফল্ট) / NO
টাইপ: বুলিয়ান
Pushwoosh_ALERT_TYPEনোটিফিকেশন অ্যালার্ট স্টাইল সেট করে।BANNER (ডিফল্ট) / ALERT / NONE
টাইপ: স্ট্রিং
Pushwoosh_BASEURLPushwoosh সার্ভার বেস URL ওভাররাইড করে।https://cp.pushwoosh.com/json/1.3/ (ডিফল্ট)
টাইপ: স্ট্রিং
Pushwoosh_AUTO_ACCEPT_DEEP_LINK_FOR_SILENT_PUSHযদি YES হয়, সাইলেন্ট পুশে প্রাপ্ত ডিপ লিঙ্কগুলি স্বয়ংক্রিয়ভাবে প্রসেস করা হবে।YES (ডিফল্ট) / NO
টাইপ: বুলিয়ান
Pushwoosh_ALLOW_SERVER_COMMUNICATIONSDK-কে Pushwoosh সার্ভারে নেটওয়ার্ক অনুরোধ পাঠানোর অনুমতি দেয়।YES (ডিফল্ট) / NO
টাইপ: বুলিয়ান
Pushwoosh_ALLOW_COLLECTING_DEVICE_DATASDK-কে ডিভাইসের ডেটা (OS সংস্করণ, লোকেল এবং মডেল) সংগ্রহ করে সার্ভারে পাঠানোর অনুমতি দেয়।YES (ডিফল্ট) / NO
টাইপ: বুলিয়ান
Pushwoosh_ALLOW_COLLECTING_DEVICE_OS_VERSIONSDK-কে ডিভাইসের OS সংস্করণ সংগ্রহ করে সার্ভারে পাঠানোর অনুমতি দেয়।YES (ডিফল্ট) / NO
টাইপ: বুলিয়ান
Pushwoosh_ALLOW_COLLECTING_DEVICE_LOCALESDK-কে ডিভাইসের লোকেল সংগ্রহ করে সার্ভারে পাঠানোর অনুমতি দেয়।YES (ডিফল্ট) / NO
টাইপ: বুলিয়ান
Pushwoosh_ALLOW_COLLECTING_DEVICE_MODELSDK-কে ডিভাইসের মডেল সংগ্রহ করে সার্ভারে পাঠানোর অনুমতি দেয়।YES (ডিফল্ট) / NO
টাইপ: বুলিয়ান
Pushwoosh_LOG_LEVELPushwoosh SDK লগিং লেভেল। বিস্তারিত জানতে, লগ লেভেল নিয়ন্ত্রণ দেখুন।NONE / ERROR / WARNING / INFO (ডিফল্ট) / DEBUG / VERBOSE
টাইপ: স্ট্রিং
Pushwoosh_PURCHASE_TRACKING_ENABLEDSDK-কে ইন-অ্যাপ পারচেজ ট্র্যাক করার অনুমতি দেয়। Customer Journey Builder-এর জন্য প্রয়োজন।YES / NO (ডিফল্ট)
টাইপ: বুলিয়ান