2015-03-15 2 views
0

Я начинаю разрабатывать один Иос клиента XMPP с использованием robbiehanson/XMPPFramework Я пытался добиться пользователя привязывания .. т.е. индикатора Typing. Он работает, когда оба пользователя используют клиент ios. Когда я пытался использовать несколько клиентов, т. Е. Один пользователь использует клиент iOS, а другой пользователь использует Spark desktop clien, индикатор ввода не работает.IOS: XMPP: индикация Typing не работает с другим клиентом

// Отправить Typing уведомление о

NSXMLElement *message = [NSXMLElement elementWithName:@"message"]; 
[message addAttributeWithName:@"type" stringValue:@"chat"]; 
[message addAttributeWithName:@"to" stringValue:self.userprofile.jidStr]; 

// [message addChild:body]; 

// chat notifications 
XMPPMessage *xmppMessage = [XMPPMessage messageFromElement:message]; 



[xmppMessage addComposingChatState]; 

[appDelegate.xmppStream sendElement:xmppMessage]; 

// Для Присылать оповещения о наборе

- (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message 
    { 
    if ([message hasComposingChatState]) { 
      [email protected]"is typing..."; 
     } 
    } 

Уведомление Typing работает нормально, когда оба пользователя с помощью моего клиента IOS. Но когда клиент ios и другой пользователь используют другой клиент, уведомление о вводе не работает,

Пожалуйста, предоставьте мне лучший способ достичь этого.

+0

Другой может быть, что Спарк настольный клиент не кодируются «печатает» особенность. –

ответ

0

Заменить следующие строки

[xmppMessage addComposingChatState]; 

с

[xmppMessage addMarkableChatMarker]; 

Другой код отлично. Попробуй это.

+0

Спасибо, это код для отправки уведомления о вводе с клиента ios другим клиентам. Как насчет получения уведомления от другого клиента? – Sridhar

+0

с другой стороны, так как вы закодировали 'hasComposingChatState' будет работать –

+0

, если пользователь отправляет сообщение от другого клиента, didReceiveMessage вызывается только один раз. – Sridhar

Смежные вопросы