0

私は Web で多くのことを検索しましたが、Google チャットの実装を開始するのに役立つ実際のサンプル ソース コードを見つけることができません。 Mac デスクトップ アプリケーションのプロジェクト。

xmppframework で提供されているサンプル プロジェクト (iphoneXmpp) の助けを借りて、オンライン/オフライン/不在のすべての友人を表示できましたが、チャットを開始する方法についても何も教えてくれません。

アプリで Google チャットを初期化できるように、サンプル ソース コードを提供してください。

私は本当に立ち往生しています。

前もって感謝します

4

3 に答える 3

2
- (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。

于 2012-04-22T09:06:57.597 に答える
2

xmppフレームワークのデスクトップアプリケーションを調べて、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 つの方法を使用してチャットを送受信できますが、問題は、使用可能なオンライン連絡先 (チャットできる相手) のテーブル ビューから選択した人の ID がメッセージを受信しないことがあることです。他の人がメッセージを受け取ります..

乾杯!!

于 2012-04-18T10:27:00.690 に答える
1

このチュートリアルでうまくいくはずです: http://mobile.tutsplus.com/tutorials/iphone/building-a-jabber-client-for-ios-server-setup/

于 2012-03-19T10:21:01.407 に答える