मैं अपना सिर पीट रहा हूं। मैं पुश नोटिफिकेशन लागू कर रहा हूं। सब कुछ ठीक काम कर रहा है (पुश प्राप्त होता है, बैज अपडेट किया जाता है) लेकिन iOS 13.3 के तहत विधि अनुप्रयोग (_: didReceiveRemoteNotification: fetchCompletionHandler :) को तब नहीं बुलाया जाता है जब ऐप पृष्ठभूमि में होता है। यदि ऐप अग्रभूमि में है या iOS 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
}}
मैंने सभी बदलावों में ऐप क्षमताओं के रूप में "रिमोट नोटिफिकेशन" और "बैकग्राउंड प्रोसेसिंग" को जोड़ने की कोशिश की (केवल "रिमोट नोटिफिकेशन" / "बैकग्राउंड प्रोसेसिंग", उन क्षमताओं के बिना, दोनों को सक्षम करता है) बिना किसी बदलाव के। मैंने UNUserNotificationCenter के लिए प्रतिनिधि सेट किया, लेकिन फिर बिना सफलता के। मैं तदनुसार हेडर सेट करता हूं:
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
डॉक्स से यह कहा जाता है कि यह विधि तब भी होती है जब ऐप पृष्ठभूमि में होता है:
अपने ऐप के लिए आने वाली दूरस्थ सूचनाओं को संसाधित करने के लिए इस पद्धति का उपयोग करें। आवेदन के विपरीत: didReceiveRemoteNotification: विधि, जिसे केवल तभी कहा जाता है जब आपका ऐप अग्रभूमि में चल रहा हो, सिस्टम इस पद्धति को तब कॉल करता है जब आपका ऐप अग्रभूमि या पृष्ठभूमि में चल रहा हो।
आईओएस 13 के लिए मैं यहां क्या याद कर रहा हूं?
application(_:didReceiveRemoteNotification:withCompletionHandler:)
विधि लागू करके प्रयास किया है ?