2017-10-30 18 views
0

SwiftでXMPPを使用しているユーザーのブロックとブロックを解除するために非常に多くのブログとサイトを見直しました。 しかし、例のどれも私のために働いていません。 スニペットコードを持っている人は誰でも私と共有してください。 ありがとうございます。Swift 3.0でXMPPを使用しているユーザーのブロックとブロック解除

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) 
} 
+0

を追加します。これは完全にあなたの実装に依存しています。だから、うまくいかないものを試してみてください。また、コードを尋ねると、あなたは疑惑を浮かび上がらせてしまいます。 – rckoenes

+0

私は質問のあるコードを投稿しました。今、あなたは私が間違っている場所を確認し、私に知らせることができます。 –

答えて

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){ 

     } 
    } 
    } 
関連する問題