l'application iOS notifications lorsqu'une application est ouverte (comme whatsapp)
Im en train de recevoir les notifications avec un JSON et un message, donc ce que je voulais, c'était de la poignée de la notification et de l'afficher à l'utilisateur.
Lorsque l'application n'est pas en cours d'exécution ou en arrière-plan, le message s'affiche, mais lorsque l'application est ouverte il n'y a pas de notification. En fait, je reçois le json lorsque dans didReceiveRemoteNotification
, mais ce que je veux, c'est une boîte de notification comme whatsapp ne.
Comme ceci:
J'ai ceci:
func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject]) {
print("Notification received: \(userInfo)")
let notification = userInfo["aps"] as? NSDictionary
let message = notification?.valueForKey("alert")
}
Et ce dans didfinishlaunchWithOptions
let readAction = UIMutableUserNotificationAction()
readAction.identifier = "READ_IDENTIFIER"
readAction.title = "Read"
readAction.activationMode = UIUserNotificationActivationMode.Foreground
readAction.destructive = false
readAction.authenticationRequired = true
let deleteAction = UIMutableUserNotificationAction()
deleteAction.identifier = "DELETE_IDENTIFIER"
deleteAction.title = "Delete"
deleteAction.activationMode = UIUserNotificationActivationMode.Foreground
deleteAction.destructive = true
deleteAction.authenticationRequired = true
let ignoreAction = UIMutableUserNotificationAction()
ignoreAction.identifier = "IGNORE_IDENTIFIER"
ignoreAction.title = "Ignore"
ignoreAction.activationMode = UIUserNotificationActivationMode.Foreground
ignoreAction.destructive = false
ignoreAction.authenticationRequired = false
let messageCategory = UIMutableUserNotificationCategory()
messageCategory.identifier = "MESSAGE_CATEGORY"
messageCategory.setActions([readAction, deleteAction], forContext: UIUserNotificationActionContext.Minimal)
messageCategory.setActions([readAction, deleteAction, ignoreAction], forContext: UIUserNotificationActionContext.Default)
let types: UIUserNotificationType = [UIUserNotificationType.Badge, UIUserNotificationType.Sound, UIUserNotificationType.Alert]
application.registerUserNotificationSettings(
UIUserNotificationSettings(
forTypes: types,
categories: (NSSet(array: [messageCategory])) as? Set<UIUserNotificationCategory>))
UIApplication.sharedApplication().registerForRemoteNotifications()
let notTypes:UIUserNotificationType = [UIUserNotificationType.Alert, UIUserNotificationType.Badge, UIUserNotificationType.Sound]
let noteSettings:UIUserNotificationSettings = UIUserNotificationSettings(forTypes: notTypes, categories: nil)
UIApplication.sharedApplication().registerUserNotificationSettings(noteSettings)
Espère que quelqu'un pouvait l'aider. Merci pour tous
Essayez de reformuler votre question, "j'ai une chaîne et je veux le mettre dans un label".
OriginalL'auteur Norolim | 2015-09-30
Vous devez vous connecter pour publier un commentaire.
Lorsque votre application est sur le premier plan, iOS ne sera pas montrer la notification de la bannière. Vous avez à vous montrer. Vous pouvez utiliser certains de ces 3e codes pour afficher la bannière et la poignée de la touche sur la bannière pour le processus de l'appropriation des codes:
https://github.com/KrauseFx/TSMessages
https://github.com/terryworona/TWMessageBarManager
Dans votre call-back didReceiveRemoteNotification, vérifier l'état de l'application:
OriginalL'auteur Duyen-Hoa
Vous avez juste à créer une vue, de le personnaliser avec votre contenu et de l'afficher sur la fenêtre de l'application.
Il y a aussi des cadres qui ne sont que pour vous, comme CWStatusBarNotification
OriginalL'auteur EmilioPelaez
Vous n'avez pas besoin d'utiliser d'autres cadres ou des bibliothèques. Dans iOS 10, vous pouvez utiliser la méthode
userNotificationCenter(_:willPresent:withCompletionHandler:)
.Cette méthode n'est appelée que si vous ajoutez à la charge utile de l'attribut
content-available:1
. La charge utile doit être quelque chose comme:OriginalL'auteur Jorge Costa