Sì, è necessario chiamare registerUserNotificationSettings
anche tutto ciò che serve è la notifica remota in background. Quindi l'utente chiederà il permesso per le notifiche. Non ha senso in quanto gli utenti non vedranno le notifiche ma è così che è.
Io lo uso per configurarlo:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { let settings = UIUserNotificationSettings(forTypes: .None , categories: nil) application.registerUserNotificationSettings(settings) application.registerForRemoteNotifications() }
Assicurarsi che quando si chiama CloudKit saveSubscription che fornisci shouldSendContentAvailable = true
. Il seguente codice è per la sottoscrizione di una zona personalizzato:
let subscription = CKSubscription(zoneID:zoneID, options: CKSubscriptionOptions(rawValue: 0))
let notificationInfo = CKNotificationInfo()
notificationInfo.shouldSendContentAvailable = true
subscription.notificationInfo = notificationInfo
CKContainer.defaultContainer().privateCloudDatabase.saveSubscription(subscription) { subscription, error in
}
È inoltre necessario abilitare funzionalità Modalità Sfondo sotto Xcode per il progetto, e selezionare la casella Notifiche remoti.
L'utente può accedere all'app Impostazioni per disabilitare le notifiche per l'app. Tuttavia, riceverai comunque un trigger di notifica remota dal server CloudKit.
implementare le seguenti funzioni nel AppDelegate per ricevere notifiche remote:
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {}
func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) {}
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {}
fonte
2015-11-27 08:31:07
non è vero, vedere la mia risposta. – malhal
Questo è sbagliato. la risposta malhal è quella corretta. –