2017-08-08 2 views
0

Ich versuche, diese Methode auf die Schaltfläche klicken, aber nicht Ergebnis:Lesen ungelesene Nachricht in JSQMessagesViewController mit Swift 3

@IBAction func childAdded(_ sender: Any) {  
    let ref = Constants.refs.databaseChats.childByAutoId() 

    ref.observe(DataEventType.childAdded , with: { (snapshot) in 
     let msgData = snapshot.value as? NSDictionary 
     let msg = msgData?["status"] as? String 

     if msg == "sent" { 
      let prntRef = Constants.refs.databaseChats.child("chats").child(ref.key) 
      prntRef.updateChildValues(["status":"Read"]) 
      print("Message Read") 
     } 
    }) { (e) in 
     print(e.localizedDescription) 
    } 
} 
+0

Ich bin wirklich verwirrt? Ich verstehe nicht wirklich, welche Frage du stellst. Außerdem sehe ich keine große Korrelation zwischen dem Titel und dem bereitgestellten Code. Auch bin ich richtig in der Annahme, dass Sie Firebase verwenden. Würde es Ihnen etwas ausmachen, eine Frage zu stellen, damit wir den besten Weg finden können, Ihnen zu helfen? –

+0

Ich möchte hinzufügen Funktionalität in FirebaseChat App message Ungelesene lesen –

+0

Wenn Sender die Nachricht an den Empfänger senden, wenn der Empfänger die Nachricht lesen Anzeige eine beliebige AktivitätIndicator an den Absender –

Antwort

1

Es gibt ein paar Möglichkeiten, dies zu tun und einige Vorteile gegenüber anderen. Eine Lösung wäre, eine Variable wie lasReadVariable oder etwas in firebase zu speichern. das ist die letzte gelesene Nachricht für Benutzer1 dann jedes Mal, wenn die chatView geöffnet ist, aktualisieren Sie diese lasReadVariable für die letzte Nachricht in diesem Thread lesen. Habe eine observer für user2 im Gespräch über die lasReadVariable und aktualisiere die messageState entsprechend.

Lassen Sie mich wissen, ob es mehr Klärung gibt, die ich geben kann.

Verwandte Themen