如何在 iOS 中用 xmpp 屏蔽好友?
Posted
技术标签:
【中文标题】如何在 iOS 中用 xmpp 屏蔽好友?【英文标题】:How to block friend with xmpp in iOS? 【发布时间】:2013-07-17 07:15:50 【问题描述】:我正在开发聊天应用程序。我想屏蔽朋友。我正在使用 xmpp 框架的 XEP-0016 扩展。
这是我的代码..
- (void)setupXMPPPrivacy
NSLog((@"%s [Line %d] "), __PRETTY_FUNCTION__, __LINE__);
//Init XMPPPrivacy List
//xmppPrivacy = [[XMPPPrivacy alloc] init];
xmppPrivacy = [[XMPPPrivacy alloc] initWithDispatchQueue:dispatch_get_main_queue()];
//Activate xmpp modules
[xmppPrivacy activate:xmppStream];
//Delegate XMPPPrivacy
[xmppPrivacy addDelegate:self delegateQueue:dispatch_get_main_queue()];
- (void)privacyBlock:(XMPPJID *)jid
NSXMLElement *privacyElement = [XMPPPrivacy privacyItemWithType:@"jid" value:jid.bare action:@"deny" order:1];
[XMPPPrivacy blockIQs:privacyElement];
[XMPPPrivacy blockMessages:privacyElement];
[XMPPPrivacy blockPresenceIn:privacyElement];
[XMPPPrivacy blockPresenceOut:privacyElement];
NSLog(@"-------> PRIVACY ELEMENT: %@", privacyElement);
NSArray *arrayPrivacy = [[NSArray alloc] initWithObjects:privacyElement, nil];
[xmppPrivacy setListWithName:@"public" items:arrayPrivacy];
但是,这不起作用。我做错了什么?
请帮忙。谢谢。
【问题讨论】:
为什么要添加2次委托? @Sunny 你的问题解决了吗?我有同样的问题,所以你的帮助将不胜感激 @Zhans 是的,我已经完成了,但不是通过 xmpp。我已经创建了一个将维护阻止列表的网络服务。 【参考方案1】:我也遇到了同样的问题。第一个问题是 UUID 生成器,它返回 nil。但在 ios 5 中添加了 NSUUID
类。所以使用[[NSUUID UUID] UUIDString]
我解决了这个问题。第二个问题是我的大错误。我初始化了 xmmpSram 并请求阻止,但打开流需要一些时间。所以,我在打开流之前请求。
【讨论】:
以上是关于如何在 iOS 中用 xmpp 屏蔽好友?的主要内容,如果未能解决你的问题,请参考以下文章