目前我正在制作聊天应用程序,我需要编辑群组名称。
如果有人有解决方案,那么请发给我,因为我花了很多时间编辑组名但没找到任何解决方案。
由于
答案 0 :(得分:0)
关于持续性房间的iOS XMPPFramework - Room / chat messages history提示(@Moral'答案),你必须记住
1)群聊名称,作为JID(JabberID)的唯一ID,不能以任何方式更改。因此,您无法更改mychatroom1@conference.myserver
2)可以更改群聊主题(和/或描述)。我无法找到一个体面的教程,但是,看看之前的答案,你必须添加类似的东西(看点3):
-(void)xmppRoom:(XMPPRoom *)sender didFetchConfigurationForm:(NSXMLElement *)configForm {
NSXMLElement *newConfig = [configForm copy];
NSArray *fields = [newConfig elementsForName:@"field"];
for (NSXMLElement *field in fields) {
NSString *var = [field attributeStringValueForName:@"var"];
// Change room name
if ([var isEqualToString:@"muc#roomconfig_roomname"]) {
[field removeChildAtIndex:0];
[field addChild:[NSXMLElement elementWithName:@"value" stringValue:@"myNewName"]];
}
}
}
[sender configureRoomUsingOptions:newConfig];
}
注意:如果用户没有更改房间名称的授权,则必须启用更改名称权限。再次,在发送表单时,您必须在
之前发送-(void)xmppRoom:(XMPPRoom *)sender didFetchConfigurationForm:(NSXMLElement *)configForm {
NSXMLElement *newConfig = [configForm copy];
NSArray *fields = [newConfig elementsForName:@"field"];
for (NSXMLElement *field in fields) {
NSString *var = [field attributeStringValueForName:@"var"];
// Make Room Persistent
if ([var isEqualToString:@"muc#roomconfig_changesubject"]) {
[field removeChildAtIndex:0];
[field addChild:[NSXMLElement elementWithName:@"value" stringValue:@"true"]];
// if does not works: [field addChild:[NSXMLElement elementWithName:@"value" booleanValue:@"true"]];
}
}
[sender configureRoomUsingOptions:newConfig];
}
查看官方规范,了解Multiuserchat (groupchat)如何运作
此外,关于如何配置MUC的答案可能会对您有所帮助XMPPFramework - Implement Group Chat (MUC)