2014-12-27 16 views
6

Sto creando un'applicazione basata su chat su QuickBlox Framework, voglio avere una funzionalità di blocco nell'app. Ho letto alcuni documenti come XMPP e QuickBlox. Ma non ha avuto alcun aiuto.Come bloccare un utente in QuickBlox?

C'è qualche logica per mantenere QBPrivacyList per non consentire ad altri utenti di inviare messaggi e bloccarli ma non ci sono riuscito con esso.

Questo è uno snippet di codice su come sto mantenendo l'Elenco privacy.

  1. ottenere l'elenco privacy con nome @"public" nel modo di chiacchierata ha login

    [[QBChat instance] retrievePrivacyListWithName:@"public"]; 
    

    quindi se c'è già creato lista privacy nominato "public" preleverà in metodo delegato

    - (void)chatDidReceivePrivacyList:(QBPrivacyList *)privacyList{ 
         NSLog(@"chatDidReceivePrivacyList: %@", privacyList); 
         _blockPrivacyList = privacyList; // Save its instance for further add more users in list 
        } 
    

    // risposta è

    [PrivacyList name: public]items:("type: USER_ID valueForType: 2075213 action: deny")

  2. Ecco come aggiungere un altro membro nella lista privacy

    - (void)blockUserWithQBId:(NSUInteger)qbID 
    { 
    
         QBPrivacyItem *item = [[QBPrivacyItem alloc] initWithType:USER_ID valueForType:qbID action:DENY]; 
    
         if (_blockPrivacyList) { 
           [_blockPrivacyList addObject:item]; // add new user if already privacy list is there 
         }else 
         _blockPrivacyList = [[QBPrivacyList alloc] initWithName:@"public" items:@[item]]; // create new privacy list if not before created 
    
         [[QBChat instance] setPrivacyList:_blockPrivacyList]; 
    
    } 
    

    E tutti i metodi delegato funziona perfettamente crea e aggiunge membro nella lista privacy.

    - (void)chatDidSetPrivacyListWithName:(NSString *)name{ 
        NSLog(@"chatDidSetPrivacyListWithName %@", name); 
        [[QBChat instance] setDefaultPrivacyListWithName:name]; // set it as default privacy list 
    } 
    
  3. ho questa lista privacy perfettamente anche io uccido l'applicazione o reinstallare per lo stesso utente. così il mio codice della privacy lista è perfettamente funzionante

Ma in qualche modo gli altri membri nella mia lista DENY privacy mi può inviare il messaggio. Secondo i documenti da questo http://quickblox.com/developers/SimpleSample-chat_users-ios#Contact_list dovrebbe dare l'errore come

"error:Error Domain=com.quickblox.chat Code=503 "Service not available." 

Quindi, se tutta la lista privacy funziona alla perfezione allora come fanno i miei utenti bloccati potevano inviarmi messaggi?

avevo lavorato con XMPP nel iOS lo stesso problema esiste anche lì se si può dare XMPP logica che funziona anche come QuickBlox come QuickBlox utilizza effettivamente XMPP stessa.

Qualche suggerimento?

risposta

3

finalmente trovato la sua soluzione. Il flusso e la logica che avevo scritto nella mia domanda erano perfetti. Stavo solo rimanendo con una piccola funzione per attivare la lista privacy. Non so perché QuickBlox non ha scritto quella chiamata di funzione nei loro demo.

[[QBChat instance] setActivePrivacyListWithName:@"public"]; 

Lo stesso in XMPP è necessario mantenere l'elenco Privacy e attivare la privacy singola in una volta.

+0

Grazie Haresh, cercavo esattamente questo, mi hai salvato la giornata! :) – Hemang

+0

Hi haresh, ho aggiunto più utenti nella lista e aggiornato. Come rimuovere il singolo utente dall'elenco e aggiornarlo. – Ajay

+1

Dove hai aggiunto questo codice? Ho provato ad aggiungerlo dopo essermi connesso alla chat. Ma ancora non funziona. L'altro utente sta ancora ricevendo messaggi. Puoi per favore aiutarmi su questo? –

Problemi correlati