CloudKit Push Notification, App running on background

夙愿已清 提交于 2019-12-05 12:45:16

When you go to your app settings capabilities, do you have remote notifications enabled for background modes?

See this screenshot:

Besides that, did you register for all notification types like this:

application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: .Alert | .Badge | .Sound, categories: nil))
    application.registerForRemoteNotifications()

And in your subscription, do you send an alertBody or alertLocalizationKey for the CKNotificationInfo? If you do that, then you will already get a notification from the OS and you don't need to setup a local notification.

Update: As Porton mentioned below, this issue was solved by filling in the alertBody.

I had the same problem and have spent several hours on making push notifications work when the app is not in the foreground.

Originally, I did not set an alertBody since I did not want the user to see a message when CloudKit data has changed.

However, as stated above, without an alertBody, the method didReceiveRemoteNotification is not being called when the app is not in the foreground.

I finally tried to set alertBodyto be an empty string:

CKNotificationInfo *notificationInfo = [CKNotificationInfo new];
notificationInfo.alertBody = @"";

Now it works: didReceiveRemoteNotification is called even when the app is not active AND no alert message is shown to the user.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!