আমি মাথা ঠাপাচ্ছি আমি পুশ নোটিফিকেশন বাস্তবায়ন করছি। সবকিছু ঠিকঠাক চলছে (ধাক্কা পেয়েছে, ব্যাজ আপডেট হয়েছে) তবে আইওএস 13.3 এর অধীনে অ্যাপ্লিকেশন ব্যাকগ্রাউন্ডে থাকা অবস্থায় অ্যাপ্লিকেশনটি (_: didReLiveRemoteNotifications: fetchCompletionHandler :) কল করা হয় না। অ্যাপ্লিকেশনটি যদি অগ্রভাগে থাকে বা কোনও আইওএস 12 ডিভাইস ব্যবহার করা হয় তবে সেই পদ্ধতিটি বলা হয়। আমি নিম্নলিখিত উপায়ে পুশ বিজ্ঞপ্তির জন্য নিবন্ধন করি:
[[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert) completionHandler:^(BOOL granted, NSError * _Nullable error) {
if (granted) {
dispatch_async(dispatch_get_main_queue(), ^{
[[UIApplication sharedApplication] registerForRemoteNotifications];
});
}
}];
পে-লোডটি নিম্নলিখিতটিতে সেট করা আছে
{"aps": {
"badge": 10,
"alert": "test",
"content-available": 1
}}
আমি কোনও পরিবর্তন ছাড়াই সমস্ত প্রকরণের (কেবল "রিমোট নোটিফিকেশন" / "ব্যাকগ্রাউন্ড প্রসেসিং", কোনও ক্ষমতা ছাড়াই অ্যাপ্লিকেশন ক্ষমতা হিসাবে "দূরবর্তী বিজ্ঞপ্তিগুলি" এবং "ব্যাকগ্রাউন্ড প্রসেসিং" যুক্ত করার চেষ্টা করেছি) both আমি UNUserNotificationsCenter জন্য প্রতিনিধি সেট কিন্তু আবার সফলতা ছাড়াই। আমি সেই অনুসারে শিরোনামগুলি সেট করেছি:
curl -v \
-H 'apns-priority: 4' \
-H 'apns-topic: xx.xxxxx.xxxx' \
-H 'apns-push-type: alert' \
-H 'Content-Type: application/json; charset=utf-8' \
-d '{"aps": {"badge": 10,"alert": "test", "content-available":1}}' \
--http2 \
--cert pushcert.pem \
https://api.sandbox.push.apple.com/3/device/1234567890
দস্তাবেজ থেকে বলা হয়েছে যে অ্যাপটি ব্যাকগ্রাউন্ডে থাকা অবস্থায়ও এই পদ্ধতিটি কল করা হয়:
আপনার অ্যাপের জন্য আগত দূরবর্তী বিজ্ঞপ্তিগুলি প্রক্রিয়া করতে এই পদ্ধতিটি ব্যবহার করুন। অ্যাপ্লিকেশনটির মতো নয়: didReLiveRemoteNotifications: পদ্ধতি, যা কেবল তখনই বলা হয় যখন আপনার অ্যাপ্লিকেশনটি অগ্রভাগে চলমান থাকে, যখন আপনার অ্যাপ্লিকেশনটি পূর্বগ্রাউন্ড বা ব্যাকগ্রাউন্ডে চলমান থাকে তখন সিস্টেমটি এই পদ্ধতিটিকে কল করে।
আইওএস 13 এর জন্য আমি এখানে কী মিস করছি?
application(_:didReceiveRemoteNotification:withCompletionHandler:)পদ্ধতি প্রয়োগ করে চেষ্টা করেছেন ?