【问题标题】:Block & unblock user using XMPP in Swift 3.0在 Swift 3.0 中使用 XMPP 阻止和取消阻止用户
【发布时间】: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)
}

【问题讨论】:

  • 这完全取决于你的实现。因此,只需发布​​您尝试过的内容不起作用。还要求提供代码会使您的问题被否决,因为它是不受欢迎的。
  • 我已经发布了带有问题的代码。现在你可以检查并告诉我我哪里出错了。

标签: ios swift xmpp


【解决方案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){

        }
    }
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多