Я не могу делать уведомления, когда приложение закрыто.iOS Swift GCM/FCM получает уведомление в фоновом режиме
Я посылаю это от ТСМ/GCM (питон сервера):
{
"registration_ids": ["APA91bEDB9dVf-..."]
"collapse_key": null,
"content_available": true,
"data": {
"msg": "{\"model\":\"article\",\"data\":\"reload\"}"
},
"notification": {
"body": "my body",
"sound": "default",
"title": "my title"
},
"priority": "high",
"time_to_live": 3600
}
так локон, как это:
локон --header "Разрешение: ключ = MYKEY" --header "Content-Type: application/json" https://fcm.googleapis.com/fcm/send -d '{"registration_ids": ["APA91bEDB9dVf -..."], "collapse_key": null, "content_available": true, "notification": {"body ":" my body "," sound ":" default "," title ":" my title "} , "priority": "high", "time_to_live": 3600, "data": {"msg": "{\" model \ ": \" article \ ", \" data \ ": \" reload \ "}"}}»
и реагирование в терминале:
{ "multicast_id": 6089491211057070352, "успех": 1, "провал": 0, "canonical_ids": 0,» результаты ": [{" message_id ":" 0: 1471474398816666% cc062fb9cc062fb9" }]}
в ИО приложение Background Modes
включен и Remote notifications
:
AppDelegate.swift:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
let settings: UIUserNotificationSettings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil)
application.registerUserNotificationSettings(settings)
application.registerForRemoteNotifications()
FIRApp.configure()
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.tokenRefreshNotification), name: kFIRInstanceIDTokenRefreshNotification, object: nil)
return true
}
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {
let notification = UILocalNotification()
notification.alertBody = "Test"
notification.alertAction = "open"
notification.fireDate = NSDate(timeIntervalSinceNow: 1)
notification.soundName = UILocalNotificationDefaultSoundName
notification.userInfo = ["UUID": 12312]
UIApplication.sharedApplication().scheduleLocalNotification(notification)
}
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
FIRInstanceID.instanceID().setAPNSToken(deviceToken, type: FIRInstanceIDAPNSTokenType.Unknown)
}
Но до сих пор ничего не показывает, когда я отправить что сбщ, но при открытии приложения уведомлений работает.
Что может быть проблемой?
Указания 'data' ключ перестал уведомление, работающее в прошивкой для меня (но, кажется, требуется для уведомлений Android сейчас). Если он работает в приложении, он, вероятно, отправляется беззвучно. Отображает ли уведомление уведомление об удалении ключа данных? – Yasir
Это не так, все равно. –
FYI не ответ: 'didReceiveRemoteNotification' вызывается только тогда, когда PN приходит с вашим приложением на переднем плане или когда пользователь удаляет уведомление в центре уведомлений. Я не знаю, почему PN не отображаются, но странно иметь локальное уведомление в 'didReceiveRemoteNotification', пользователь увидит два уведомления: одно, когда приложение находится в фоновом режиме, и когда после нажатия на него. –