나는 머리를 두드리고있다. 푸시 알림을 구현하고 있습니다. 모든 것이 제대로 작동하지만 (푸시가 수신되고 배지가 업데이트 됨) iOS 13.3에서는 응용 프로그램이 백그라운드에있을 때 application (_ : 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
문서에서 앱이 백그라운드에있는 경우 에도이 메소드가 호출된다는 것을 나타냅니다.
이 방법을 사용하여 앱에 대한 수신 원격 알림을 처리하십시오. 앱이 포 그라운드에서 실행될 때만 호출되는 application : didReceiveRemoteNotification : 메소드와 달리 시스템은 앱이 포 그라운드 또는 백그라운드에서 실행될 때이 메소드를 호출합니다.
iOS 13에서 여기서 무엇을 놓치고 있습니까?
application(_:didReceiveRemoteNotification:withCompletionHandler:)
방법 을 구현하여 시도 했습니까 ?