আসলে, রিমোট নোটিফিকেশনগুলি ব্যবহার করার জন্য আপনাকে .plist এ ইউআইব্যাকগ্রাউন্ডমোডগুলি যুক্ত করার দরকার নেই।
আমি জানি আমি উত্তরাধিকারীদের কিছুটা বিভক্ত করছি (অন্য উত্তরটি বেশিরভাগই দুর্দান্ত, এবং সম্ভবত আইওএস 11-তে নতুন কিছু আছে), তবে প্রশ্নটি ব্যাকগ্রাউন্ড আপডেটগুলির প্রয়োজনীয় নোটিফিকেশনগুলিকে ধাক্কা দেয়, এবং তারা তা করে না।
পার্থক্যটি এখানে, দুটি আলাদা পদ্ধতি রয়েছে যা অ্যাপডেলিগেটে বিজ্ঞপ্তিগুলি গ্রহণ করে;
এটির জন্য আপনাকে ইউআইব্যাকগ্রাউন্ডমোডগুলি ব্যবহার করার দরকার নেই:
optional func userNotificationCenter(_ center: UNUserNotificationCenter,
willPresent notification: UNNotification,
withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void)
উপরোক্তগুলি iOS 11 হিসাবে অবহেলিতকে প্রতিস্থাপন করে:
optional func application(_ application: UIApplication,
didReceiveRemoteNotification userInfo: [AnyHashable : Any])
এবং এটির জন্য পটভূমি মোডের ক্ষমতা প্রয়োজন:
optional func application(_ application: UIApplication,
didReceiveRemoteNotification userInfo: [AnyHashable : Any],
fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void)
এখানে মূল জিনিসটি হ'ল প্রাক্তনটি (এবং এটি প্রতিস্থাপনযোগ্য হ'ল) কেবল তখনই চালিত হয় যখন অ্যাপ্লিকেশনটি অগ্রভাগে থাকে। যদি অ্যাপটি ফোরগ্রাউন্ডে বা ব্যাকগ্রাউন্ডে থাকে তবে পরে চলবে। দেখুন বৈশিষ্ট এই নির্দিষ্ট দলা জন্য:
আপনার অ্যাপের জন্য আগত দূরবর্তী বিজ্ঞপ্তিগুলি প্রক্রিয়া করতে এই পদ্ধতিটি ব্যবহার করুন। অ্যাপ্লিকেশনটির বিপরীতে (_: didReieveRemoteNotifications :) পদ্ধতি, যা কেবল তখনই বলা হয় যখন আপনার অ্যাপ্লিকেশনটি পূর্বগ্রাউন্ডে চলমান থাকে, যখন আপনার অ্যাপ্লিকেশনটি পূর্বগ্রাউন্ডে বা ব্যাকগ্রাউন্ডে চলমান থাকে তখন সিস্টেম এই পদ্ধতিটি কল করে।
অতএব, আপনার যদি ধাক্কা বিজ্ঞপ্তিগুলির প্রয়োজন হয়, তবে আপনার পটভূমিতে চালানো দরকার কিনা তা সিদ্ধান্ত নিন - কেবল আপনার যদি উভয়ের প্রয়োজন হয় তবে আপনাকে সতর্কতার প্রস্তাবিত পদ্ধতিটি প্রয়োগ করা উচিত।