iOS 让用户退出群聊
Posted
技术标签:
【中文标题】iOS 让用户退出群聊【英文标题】:iOS leave user from group chat 【发布时间】:2015-04-20 12:46:09 【问题描述】:我正在 iPhone 中开发一个群聊应用程序,我想在其中实现此功能:管理员可以删除/踢任何参与者。并且参与者必须收到管理员已将其从该组中删除的通知。
我尝试了下面的代码,但没有成功:
XMPPPresence *presence = [XMPPPresence presenceWithType:@"unavailable"];
[presence addAttributeWithName:@"from" stringValue:[[DatingUserDefaults sharedDefaults] getGroupName]];
[presence addAttributeWithName:@"to" stringValue:[[DatingUserDefaults sharedDefaults] getUsername]];
[xmppStream sendElement:presence];
我在 Google 上搜索并知道我必须在 Objective-C 中生成以下格式:
<presence
from='harfleur@chat.shakespeare.lit/pistol'
to='pistol@shakespeare.lit/harfleur'
type='unavailable'>
<x xmlns='http://jabber.org/protocol/muc#user'>
<item affiliation='none' role='none'>
<actor nick='Fluellen'/>
<reason>Avaunt, you cullion!</reason>
</item>
<status code='307'/>
</x>
</presence>
有人知道怎么做吗?
【问题讨论】:
您对此有什么解决方案吗?我也面临同样的问题。 【参考方案1】:这对我有用。
<iq type="set" to="roomid" id="some random no"><query xmlns="http://jabber.org/protocol/muc#admin"><item affiliation="none" jid="jid you want to remove"></item></query></iq>
NSXMLElement *query = [NSXMLElement elementWithName:@"query" xmlns:@"http://jabber.org/protocol/muc#admin"];
NSXMLElement *item = [NSXMLElement elementWithName:@"item"];
[item addAttributeWithName:@"affiliation" stringValue:@"none"];
[item addAttributeWithName:@"jid" stringValue:"jid to remove"];
[query addChild:item]; XMPPIQ *RemoveUser = [[XMPPIQ alloc] initWithType:@"set" to:[XMPPJID jidWithString:roomid] elementID:@"some random id" child:query ];
[self.xmppStream sendElement:RemoveUser];
【讨论】:
是的,如果我是该组的管理员,它可以工作,但如果我不是该组的管理员并且想要删除或退出组,那么有什么建议?【参考方案2】:这对我有用
[self.xmppRoom leaveRoom];
【讨论】:
以上是关于iOS 让用户退出群聊的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 中使用 XMPP 从 Groupchat/Room 中退出特定成员/所有者
强制 iOS iPhone youtube 嵌入播放器退出全屏