iOS 未收到来自 CloudKit 的推送通知
iOS Not receiving Push Notification from CloudKit
我正在尝试为 CloudKit 记录设置订阅,订阅创建成功,我可以使用 CKFetchSubscriptionsOperation
成功检索它。但是函数
application(_:didReceiveRemoteNotification:)
没有被调用...
(我正在仪表板中手动更改记录)
订阅是这样设置的:
let database = CKContainer.default().privateCloudDatabase
let subscription = CKSubscription(recordType: "Device", predicate: NSPredicate(format: "TRUEPREDICATE"), options: .firesOnRecordUpdate)
let notificationInfo = CKNotificationInfo()
notificationInfo.alertLocalizationKey = "DEVICE_UPDATED"
notificationInfo.alertBody = "Device updated in database"
subscription.notificationInfo = notificationInfo
database.save(subscription) { subscription, error in
if error != nil {
print(error?.localizedDescription as Any)
} else {
print(subscription)
}
}
通知注册为:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let notificationSettings = UIUserNotificationSettings(types: [.alert, .badge], categories: nil)
application.registerUserNotificationSettings(notificationSettings)
application.registerForRemoteNotifications()
return true
}
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {
print(userInfo)
}
好的,我必须启用推送通知并生成 "Apple Push Notification service SSL Certificate" 并将其附加到我在 Apple Developer Provisioning Profiles 页面上的应用程序
我正在尝试为 CloudKit 记录设置订阅,订阅创建成功,我可以使用 CKFetchSubscriptionsOperation
成功检索它。但是函数
application(_:didReceiveRemoteNotification:)
没有被调用...
(我正在仪表板中手动更改记录)
订阅是这样设置的:
let database = CKContainer.default().privateCloudDatabase
let subscription = CKSubscription(recordType: "Device", predicate: NSPredicate(format: "TRUEPREDICATE"), options: .firesOnRecordUpdate)
let notificationInfo = CKNotificationInfo()
notificationInfo.alertLocalizationKey = "DEVICE_UPDATED"
notificationInfo.alertBody = "Device updated in database"
subscription.notificationInfo = notificationInfo
database.save(subscription) { subscription, error in
if error != nil {
print(error?.localizedDescription as Any)
} else {
print(subscription)
}
}
通知注册为:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let notificationSettings = UIUserNotificationSettings(types: [.alert, .badge], categories: nil)
application.registerUserNotificationSettings(notificationSettings)
application.registerForRemoteNotifications()
return true
}
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {
print(userInfo)
}
好的,我必须启用推送通知并生成 "Apple Push Notification service SSL Certificate" 并将其附加到我在 Apple Developer Provisioning Profiles 页面上的应用程序