Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 获取两个用户之间的XMPP客户端聊天历史记录_Ios_Objective C_Swift_Xmpp_Messenger - Fatal编程技术网

Ios 获取两个用户之间的XMPP客户端聊天历史记录

Ios 获取两个用户之间的XMPP客户端聊天历史记录,ios,objective-c,swift,xmpp,messenger,Ios,Objective C,Swift,Xmpp,Messenger,我用eJabbered创建了一个XMPP Swift Messenger,但它并没有保存历史 我搜索了很多,只找到了用ObjC写的答案,在堆栈中 例如: - (void)loadChatHistoryWithUserName:(NSString *)userName { NSString *userJid = [NSString stringWithFormat:@"%@@%@",userName,self.hostName]; NSManagedObjectContext *m

我用eJabbered创建了一个XMPP Swift Messenger,但它并没有保存历史

我搜索了很多,只找到了用ObjC写的答案,在堆栈中

例如:

- (void)loadChatHistoryWithUserName:(NSString *)userName {
    NSString *userJid = [NSString stringWithFormat:@"%@@%@",userName,self.hostName];
    NSManagedObjectContext *moc = [_xmppMsgStorage mainThreadManagedObjectContext];
    NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"XMPPMessageArchiving_Message_CoreDataObject"
                                                     inManagedObjectContext:moc];
    NSFetchRequest *request = [[NSFetchRequest alloc]init];
[request setEntity:entityDescription];
    NSError *error;
    NSString *predicateFrmt = @"bareJidStr == %@";
    NSPredicate *predicate = [NSPredicate predicateWithFormat:predicateFrmt, userJid];
request.predicate = predicate;
    NSArray *messages = [moc executeFetchRequest:request error:&error];
}
但我使用XMPP Swift框架,其中包含XMPP ObjC框架。看看这个Git:


如何在Swift中使用这些片段获取聊天记录

如果您没有在本地保存历史记录(即某种缓存),那么您可能应该查看一个服务器插件,该插件记录聊天记录,并允许您在连接和登录时检索聊天记录(以及进入相关房间等),如果我的记忆正常,ejabbered没有内置的(或者付费版本有),根据我的经验,这个插件很容易安装

之后,确保客户端检索历史记录(使用侦听器等)

希望这有帮助