目前,您必须拥有用户授予的通知的权限:
UIApplication *application = [UIApplication sharedApplication];
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];
[application registerUserNotificationSettings:settings];
[application registerForRemoteNotifications];
是否仍然可以获得订阅的远程通知而无需征得许可?顺便提一下,我的CKSubscription用于记录区域。
答案 0 :(得分:3)
实际上,似乎有一种方法可以接收CKSubscription备注而不会让用户误以为他允许这些“可见通知”。
要执行此操作,您应省略[application registerUserNotificationSettings:settings]
代码行,只需在没有任何预配置的情况下调用[application registerForRemoteNotifications]
。
接下来,要使应用程序能够静默接收推送备注,请转到应用程序的功能,激活“后台模式”并选中“远程通知”选项。
快乐的编码!
答案 1 :(得分:1)
我希望有一种方法可以做到这一点而不会引起用户的烦恼。特别是因为即使用户说“不”,iCloud仍然会收到所需的通知。因此警报会询问用户真的没有意义。
但问题是对registerForRemoteNotifications
和registerUserNotificationSettings:
的调用并非特定于iCloud。
我认为使用CloudKit的任何人都需要向Apple提出增强请求,要求提供一个API,让app注册iCloud通知,而无需提示用户获得权限(无论如何都会忽略其结果)。
直接回答您的问题 - 不,目前无法在不必要地提示用户的情况下注册iCloud通知。