Wenn eine Nachricht zwischen Benutzern (Gerät an Gerät) gesendet wird, erhält der empfangende Benutzer eine Benachrichtigung, wenn die App nicht im Fokus ist. Zusammen mit der Anmeldung sollte der Plakettenwert für diese Registerkarte um 1. In einem Versuch erhöhen, dies zu tun, ich habe eine NotificationCenter Aktion erstellt, die handleNotificationReceived Block in OneSignal des erlischt (innerhalb initLaunchWithOptions) wie folgt:Festlegen eines Ausweiswerts aus einer empfangenen Benachrichtigung mit OneSignal
handleNotificationReceived: { (notification) in
//Notification
NotificationCenter.default.post(name: MESSAGE_NOTIFICATION, object: nil)
print("Received Notification - \(notification?.payload.notificationID ?? "")")
},
und die Beobachter innerhalb der Messaging Registerkarte mit einer Funktion angeordnet, dass die Registerleiste Abzeichen erhöht:
NotificationCenter.default.addObserver(self, selector: #selector(addBadge), name: MESSAGE_NOTIFICATION, object: nil)
//Adds a badge to the messages bar
func addBadge(){
self.navigationController?.tabBarController?.tabBar.items?[3].badgeValue = "1"
if #available(iOS 10.0, *) {
self.navigationController?.tabBarController?.tabBar.items?[3].badgeColor = ChatMessageCell.indexedColor
} else {
// Fallback on earlier versions
}
}
Allerdings kann ich den Ausweiswert für den Benutzer immer noch nicht anzeigen