1

Ich kann keine Benachrichtigung funktionieren, wenn App geschlossen ist.iOS Swift GCM/FCM erhalten Benachrichtigung im Hintergrund

ich dies Senden von FCM/GCM (Python-Server):

{ 
    "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 
} 

so gewellt ist wie folgt:

curl --header "Authorization: key = MYKEY" --header "Content-Type: Anwendung/JSON" https://fcm.googleapis.com/fcm/send -d '{"Registrierungs-IDs": ["APA91bEDB9dVf -..."], "collapse_key": null, "content_available": true, "Benachrichtigung": {"Körper ":" Mein Körper "," Sound ":" Standard "," Titel ":" Mein Titel "} , "Priorität": "hoch", "time_to_live": 3600, "Daten": {"msg": "{\" model \ ": \" article \ ", \" data \ ": \" reload \ "}"}}‘

und Antwort im Terminal ist:

{ "multicast_id": 6089491211057070352 "Erfolg": 1, "Versagen": 0, "canonical_ids" 0“, Ergebnisse ": [{" message_id ":" 0: 1471474398816666% cc062fb9cc062fb9" }]}

in iOS app Background Modes EIN ist und Remote notifications:

0.123.

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

aber noch nichts zeigt, wenn ich, dass msg schicken, aber wenn App-Benachrichtigung funktioniert geöffnet wird.

Was kann ein Problem sein?

+0

Angabe der 'Daten' Taste stoppte Benachrichtigungen in iOS für mich funktioniert (aber scheint jetzt für Android-Benachrichtigungen erforderlich). Wenn es in App funktioniert, wird es wahrscheinlich im Hintergrund gesendet. Wird eine Benachrichtigung angezeigt, wenn Sie den Schlüssel "data" entfernen? – Yasir

+0

Es ist nicht immer noch dasselbe. –

+0

FYI keine Antwort: 'didReceiveRemoteNotification' wird nur aufgerufen, wenn die PN mit Ihrer App im Vordergrund ankommt oder wenn der Benutzer auf die Benachrichtigung im Benachrichtigungscenter tippt. Ich weiß nicht, warum die PNs nicht angezeigt werden, aber es fühlt sich komisch an, die lokale Benachrichtigung in 'didReceiveRemoteNotification' zu haben, der Benutzer sieht zwei Benachrichtigungen: eine, wenn die App im Hintergrund ist und eine nach dem Tippen. –

Antwort

-2

{ "auf": "ID", "Benachrichtigung": {
"Sound": "default", "title": "TITEL", "Körper": "BODY" }, "priority": "high" } Benachrichtigung in diesem Muster erstellen

Verwandte Themen