在 Swift 3.0 中使用 XMPP 阻止和取消阻止用户
Posted
技术标签:
【中文标题】在 Swift 3.0 中使用 XMPP 阻止和取消阻止用户【英文标题】:Block & unblock user using XMPP in Swift 3.0 【发布时间】:2017-10-30 15:11:10 【问题描述】:我已经查看了许多博客和网站,以便在 Swift 中使用 XMPP 阻止和取消阻止用户。 但是,没有一个例子对我有用。 任何有sn-p代码的人请与我分享。 谢谢。
func blockUser(userJID: String)
let privacyList = XMPPPrivacy(dispatchQueue: DispatchQueue.main)
privacyList?.activate(xmppStream)
privacyList?.addDelegate(self, delegateQueue: DispatchQueue.main)
let privacyElement = XMPPPrivacy.privacyItem(withType: "jid", value: userJID, action: "deny", order: 0)
XMPPPrivacy.blockIQs(privacyElement)
XMPPPrivacy.blockMessages(privacyElement)
XMPPPrivacy.blockPresence(in: privacyElement)
【问题讨论】:
这完全取决于你的实现。因此,只需发布您尝试过的内容不起作用。还要求提供代码会使您的问题被否决,因为它是不受欢迎的。 我已经发布了带有问题的代码。现在你可以检查并告诉我我哪里出错了。 【参考方案1】:您需要使用XEP 0191 来阻止功能。
代码(Swift 3.0):
//Block / Unblock User
var xmppBlocking: XMPPBlocking?
添加阻止用户和取消阻止用户
//Blocking Managment
self.xmppBlocking = XMPPBlocking()
self.xmppBlocking!.autoRetrieveBlockingListItems = true
self.xmppBlocking!.autoClearBlockingListInfo = true;
self.xmppBlocking!.addDelegate(self, delegateQueue: DispatchQueue.main)
self.xmppBlocking!.activate(self.xmppStream)
self.xmppBlocking?.retrieveBlockingListItems()
xmppBlocking?.blockJID(user.jid)
xmppBlocking?.unblockJID(user.jid)
extension BlockListVC : XMPPBlockingDelegate
public func xmppBlocking(_ sender: XMPPBlocking!, didBlockJID xmppJID: XMPPJID!)
//Successfully blocked
public func xmppBlocking(_ sender: XMPPBlocking!, didNotBlockJID xmppJID: XMPPJID!, error: Any!)
if(error is NSError)
//print error message
public func xmppBlocking(_ sender: XMPPBlocking!, didReceivedBlockingList blockingList: [Any]!)
//Received blocked list in this delegate method
public func xmppBlocking(_ sender: XMPPBlocking!, didUnblockJID xmppJID: XMPPJID!)
public func xmppBlocking(_ sender: XMPPBlocking!, didNotUnblockJID xmppJID: XMPPJID!, error: Any!)
if(error is NSError)
【讨论】:
以上是关于在 Swift 3.0 中使用 XMPP 阻止和取消阻止用户的主要内容,如果未能解决你的问题,请参考以下文章