1

Я не могу делать уведомления, когда приложение закрыто.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:

enter image description here

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) 
} 

Но до сих пор ничего не показывает, когда я отправить что сбщ, но при открытии приложения уведомлений работает.

Что может быть проблемой?

+0

Указания 'data' ключ перестал уведомление, работающее в прошивкой для меня (но, кажется, требуется для уведомлений Android сейчас). Если он работает в приложении, он, вероятно, отправляется беззвучно. Отображает ли уведомление уведомление об удалении ключа данных? – Yasir

+0

Это не так, все равно. –

+0

FYI не ответ: 'didReceiveRemoteNotification' вызывается только тогда, когда PN приходит с вашим приложением на переднем плане или когда пользователь удаляет уведомление в центре уведомлений. Я не знаю, почему PN не отображаются, но странно иметь локальное уведомление в 'didReceiveRemoteNotification', пользователь увидит два уведомления: одно, когда приложение находится в фоновом режиме, и когда после нажатия на него. –

ответ

-2

{ "до": "ID", "уведомление": {
"звук": "по умолчанию", "заголовка": "TITLE", "тело": "ТЕЛО" }, «приоритет»: «высокий» } создать уведомление в этой модели

Смежные вопросы