Objective c 如何在iphone应用程序中实现google聊天
我在网上搜索了很多,但找不到能够帮助我开始google chat实现的实际示例源代码,xmpp框架提供的示例代码也不清楚,因为它有一个Mac桌面应用程序的示例项目 在xmppframework中提供的示例项目(iphoneXmpp)的帮助下,我可以向所有在线/在线/不在线的朋友展示,但它也没有告诉我如何开始聊天 请为我提供任何示例源代码,以便我可以在我的应用程序中初始化谷歌聊天 我真的被卡住了Objective c 如何在iphone应用程序中实现google聊天,objective-c,ios4,xmpp,xmppframework,Objective C,Ios4,Xmpp,Xmppframework,我在网上搜索了很多,但找不到能够帮助我开始google chat实现的实际示例源代码,xmpp框架提供的示例代码也不清楚,因为它有一个Mac桌面应用程序的示例项目 在xmppframework中提供的示例项目(iphoneXmpp)的帮助下,我可以向所有在线/在线/不在线的朋友展示,但它也没有告诉我如何开始聊天 请为我提供任何示例源代码,以便我可以在我的应用程序中初始化谷歌聊天 我真的被卡住了 提前感谢本教程应该可以做到这一点:本教程应该做到这一点:好的,我没有放弃,在研究了xmpp框架的桌面应
提前感谢本教程应该可以做到这一点:本教程应该做到这一点:好的,我没有放弃,在研究了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];
}
}
我能够使用这两种方法发送/接收聊天,但问题是,有时我从可用在线联系人(我们可以与之聊天)的表视图中选择的个人id没有收到消息,但任何其他人都会收到消息
干杯 好吧,我没有放弃,在研究了xmpp框架的桌面应用程序并试图将其包含在我的iphone应用程序中之后,我找到了一些解决方案
- (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];
}
}
下面是通过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];
}
}
我能够使用这两种方法发送/接收聊天,但问题是,有时我从可用在线联系人(我们可以与之聊天)的表视图中选择的个人id没有收到消息,但任何其他人都会收到消息
干杯
- (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的用户实现注销
这对你来说非常有用,它也会提醒你谁在发送消息,谁想和你聊天,但是我只是被困在我应该在哪里为我登录到iOS SDK的用户实现注销