目前我正在制作聊天应用程序,我需要编辑组名。
如果有人有解决方案,请发给我,因为我花了很多时间来编辑组名,但没有找到任何解决方案。
谢谢
目前我正在制作聊天应用程序,我需要编辑组名。
如果有人有解决方案,请发给我,因为我花了很多时间来编辑组名,但没有找到任何解决方案。
谢谢
按照iOS XMPPFramework - 房间/聊天消息历史提示(@Moral 的回答)关于 Persistant 房间,您必须记住
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(群聊)的工作原理
更多,这个关于如何配置 MUC 的答案可以帮助你XMPPFramework - 实现群聊(MUC)