Я не получаю Push-уведомления Я ожидаю от CloudKit
Подписки.Не получать Push-уведомления от CloudKit Подписки
Вот что я сделал до сих пор:
- Включено
CloudKit
и Дистанционные Уведомления возможности. - Создал тип записи «Test», используя панель CloudVit.
- Создал подписку на соответствующий тип записи (Test), который Я могу видеть на панели CloudVit.
- Используйте физическое устройство для тестирования, которое подписано на
iCloud
и , подключенных к Интернету. - Настройте делегат приложения для получения уведомлений.
- Ручная установка/обновление/удаление записей через портал
CloudKit
.
К сожалению, я никогда не получаю никаких push-уведомлений. Ниже приведен код. Буквально это единственный код в совершенно новом проекте.
// MARK: - SUBSCRIPTIONS
func subscribeToRecordChangesWithRecordType (recordType:String, database:CKDatabase) {
let predicate = NSPredicate(value: true)
let subscription = CKSubscription(recordType: recordType, predicate: predicate, options: CKSubscriptionOptions.FiresOnRecordCreation|CKSubscriptionOptions.FiresOnRecordDeletion|CKSubscriptionOptions.FiresOnRecordUpdate)
database.saveSubscription(subscription, completionHandler: { (savedSubscription, error) -> Void in
if let _error = error {
NSLog("ERROR saving '%@' subscription %@",recordType, _error)
} else {
NSLog("SUCCESS creating '%@' subscription: %@", recordType, savedSubscription)
}
})
}
func createSubscriptions() {
let privateDB = CKContainer.defaultContainer().privateCloudDatabase
let publicDB = CKContainer.defaultContainer().publicCloudDatabase
// NOTE: create a Record Type called 'Test' in the CloudKit dashboard
self.subscribeToRecordChangesWithRecordType("Test", database: privateDB)
self.subscribeToRecordChangesWithRecordType("Test", database: publicDB)
}
// MARK: - PUSH NOTIFICATIONS
func registerForPushNotifications (application: UIApplication) {
self.createSubscriptions()
let settings = UIUserNotificationSettings(forTypes: .Alert, categories: nil)
application.registerUserNotificationSettings(settings)
application.registerForRemoteNotifications()
}
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
NSLog("Registered for Push Notifications with token: %@", deviceToken);
}
func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) {
NSLog("FAILED to register for Push Notifications. %@", error)
}
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
NSLog("RECEIVED Push Notification")
NSNotificationCenter.defaultCenter().postNotificationName("PushNotificationReceived", object: userInfo)
}
func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification) {
NSLog("RECEIVED LOCAL Push Notification")
}
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
NSLog("RECEIVED Push Notification with fetchCompletionHandler")
NSNotificationCenter.defaultCenter().postNotificationName("PushNotificationReceived", object: userInfo)
}
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
self.registerForPushNotifications(application)
return true
}
Заранее благодарим за любые советы или предложения. Надеюсь, это не ошибка, и что я делаю что-то неправильно здесь ... это должно «просто работать»!
Приветствия
Код выглядит нормально. Можете ли вы запросить свою общедоступную базу данных для теста TestType? Можете ли вы показать нам, что является результатом инструкций NSLog? вы могли бы попытаться выполнить registerForRemoteNotifications перед созданием подписки? –
Года и теперь ответ :(У меня точно такая же проблема. Удивительно мало об этой теме в Интернете за пределами руководства, предоставленного Apple. – BadPirate
Я в конечном итоге выполнил логику синхронизации. Посмотрите на первую страницу timroadley dot com на загрузите код. Это проект ezcloudkit.zip – Timbo