Wir verwenden Amazon Ubuntu Server, Apache und PHP Installierte Openfire der Version 4.0.1 und die App-Konfigurationen sind XCode 7.2 mit Swift und Bibliothek, die wir verwenden, ist XMPP Framework der Version 3.6.6. Wir können einen einzelnen Textchat ausführen, aber keinen Chatverlauf speichern - Wie können wir den Chatverlauf verwalten und diesen abrufen?Speichern Chat-Verlauf in iOS
Antwort
Wenn Sie den lokalen Chat-Verlauf beibehalten möchten, können Sie mit coredata alle eingehenden Nachrichten speichern und Nachrichten in der richtigen Reihenfolge senden. Um den Chatverlauf wiederherzustellen, verwenden Sie Parameter wie XMPPUserName (von und nach) aus Ihren Kerndaten. Um die Geschichte auf einem Openfire zu sehen, können Sie: die Monitoring Server Gehen Sie auf die Registerkarte „Archivierung“ Install Plugin ihre Einstellungen auswählen und „Archiv one-to-one-Chats“
- erstellen aktivieren XCMODEL Schemadatei von Kerndaten in Ihrem Projekt
Fügen Sie Ihre Einheiten in diesem Modell. , die in Ihrem Fall sein kann
- MESSAGE Einheit
- KONTAKT Unternehmen
- etc
- Für jede Einheit in Ihrer DB-Modell (was auch immer Sie speichern möchten), können Sie jetzt hinzufügen "Attribute" in Ihrer Entity (MESSAGE Entität sagen). Attribute können sein erstellt Zeit, Nachrichtentext usw.
- Machen Sie eine NSObject erweiterte Klasse, die Eigenschaften haben gleiche wie Ihre Attribute
.h file @property (nonatomic, retain) NSNumber * createdAt; .m file @dynamic createdAt;
Jetzt können Sie verwenden: Kerndaten-Operationsmethoden wie das Speichern von NS-verwalteten Objekten usw. zum Speichern oder anderen Operationen in der Datenbank.
Zum Beispiel: um einen Kontakt in Ihrem DB mit vollem Namensattribut zu speichern.
DBHandler * dbHandler = [DBHandler sharedInstance];
DB_CONTACT* existingContact = [self getContactByKey:@"userId" value:[userContact userId]]; if (existingContact) { return false; } BOOL result = NO;
DB_CONTACT * Kontakt = [NSEntityDescription insertNewObjectForEntityForName: @ "DB_CONTACT"
inManagedObjectContext: dbHandler.managedObjectContext];contact.fullName = userContact.fullName; NSError *error = nil; result = [dbHandler.managedObjectContext save:&error]; if (!result) { NSLog(@"DB ERROR :%@",error); } return result;
Methode verantwortlich in DB zu speichern:
[NSEntityDescription insertNewObjectForEntityForName: @ "DB_CONTACT"
inManagedObjectContext: dbHandler.managedObjectContext];
Hoffe, das gibt Ihnen eine Idee.Für weitere Details überprüfen Sie https://github.com/AppLozic/Applozic-iOS-SDK als Beispiel App für Messaging.
Vielen Dank, können Sie bitte auch dies, ich habe versucht, Medien zu senden, aber nicht funktioniert, http://StackOverflow.com/Questions/36300935/ How-to-Send-Medien im Chat –
Duplizieren http://Stackoverflow.com/a/21609882/646998 – Christopher