Как реализовать Google чат в приложении для iPhone - PullRequest
0 голосов
/ 16 марта 2011

Я много искал в Интернете, но не могу найти фактический пример исходного кода, который может помочь мне начать работу с реализацией чата Google, пример кода, предоставляемого фреймворком xmpp, также не дает четкого представления об этом, так какесть пример проекта настольного приложения Mac.

Мне удалось показать всех моих друзей, которые находятся в сети / оффлайн / в гостях, с помощью примера проекта (iphoneXmpp), который представлен в xmppframework, но он также ничего не говорит о том, как начать чат.

Пожалуйста, предоставьте мне любой пример исходного кода, чтобы я мог инициализировать чат Google в своем приложении.

Я действительно застрял.

заранее спасибо

Ответы [ 3 ]

2 голосов
/ 18 апреля 2012

Окей, я не сдался и нашел какое-то решение после того, как заглянул в настольное приложение xmpp framework и попытался включить его в приложение для iphone.

вот код для отправки сообщения нашему другу по чату на gmail.

-(void)sendMessage
{
messageStr = [NSString stringWithFormat:@"%@",[msgField text] ];
//messageStr = [NSString stringWithString:@"hello ji....."];

BOOL isEmpty = [ self validateIsEmpty:msgField.text];
if([messageStr length] > 0 && isEmpty == NO )
{
    NSXMLElementK *body = [NSXMLElementK elementWithName:@"body"];
    [body setStringValue:messageStr];

    NSXMLElementK *message = [NSXMLElementK elementWithName:@"message"];
    [message addAttributeWithName:@"type" stringValue:@"chat"];
    [message addAttributeWithName:@"to" stringValue:[[user jid] full]];
    [message addChild:body];
            [[self xmppStream ] sendElement:message];
}

и в didReceiveMessage у меня есть следующий код ...

- (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message
{

NSLog(@"---------- xmppStream:didReceiveMessage: ----------");

NSLog(@"--jid---%@", [[user jid] full]);
NSLog(@"--from----%@", [message from]);
//if(![[[user jid] full] isEqual:[message from]]) return;// important when chatting with 2 or more .. and receiving 2 or more messages...

if([message isChatMessageWithBody])
{
    NSString *msg = [[message elementForName:@"body"] stringValue];

    NSLog(@"mmmmmmmmmmssssssgggg-%@",msg);

    [str appendString:[NSString stringWithFormat:@"%@:%@\n\n", [message from], msg]];
    [chatBox setText:str];
}
}

Я могу отправить / получить чат, используя эти два метода, но проблема в том, что иногда идентификатор человека, которого я выбрал в представлении таблицы доступных онлайн-контактов (с кем мы можем общаться в чате), не получает сообщение, но любое другое лицо получает сообщение ..

Ура !!

2 голосов
/ 22 апреля 2012
- (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message {

    NSString *msg = [[message elementForName:@"body"] stringValue];
    NSString *from = [[message attributeForName:@"from"] stringValue];

    if (msg.length==0) {
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Receiving Message" 
                                                            message:[NSString stringWithFormat:@"From %@",from]  
                                                           delegate:nil 
                                                  cancelButtonTitle:@"Ok" 
                                                  otherButtonTitles:nil];
        [alertView show];


    }

    if (msg.length!=0) {
        NSMutableDictionary *m = [[NSMutableDictionary alloc] init];
        [m setObject:msg forKey:@"msg"];
        [m setObject:from forKey:@"sender"];

        NSLog(@"message received : %@", m);
        [_messageDelegate newMessageReceived:m];
    }
}

Это прекрасно работает для вас, и это также даст вам предупреждение, кто отправляет сообщение и кто хочет пообщаться с вами, однако я просто застрял в том месте, где я должен осуществить Выход для пользователя черезкоторый я вошел в iOS SDK.

1 голос
/ 19 марта 2012
...