XMPPFrameWork IOS 开发(五)获取好友信息和添加删除好友

来源:互联网 发布:爱编程不爱bug 编辑:程序博客网 时间:2024/05/17 22:37

原始地址: XMPPFrameWork IOS 开发(五)获取好友信息和添加删除好友


好友列表和好友名片

[_xmppRoster fetchRoster];//获取好友列表//获取到一个好友节点- (void)xmppRoster:(XMPPRoster *)sender didRecieveRosterItem:(NSXMLElement *)item//获取完好友列表- (void)xmppRosterDidEndPopulating:(XMPPRoster *)sender//到服务器上请求联系人名片信息- (void)fetchvCardTempForJID:(XMPPJID *)jid;//请求联系人的名片,如果数据库有就不请求,没有就发送名片请求- (void)fetchvCardTempForJID:(XMPPJID *)jid ignoreStorage:(BOOL)ignoreStorage;//获取联系人的名片,如果数据库有就返回,没有返回空,并到服务器上抓取- (XMPPvCardTemp *)vCardTempForJID:(XMPPJID *)jid shouldFetch:(BOOL)shouldFetch;//更新自己的名片信息- (void)updateMyvCardTemp:(XMPPvCardTemp *)vCardTemp;//获取到一盒联系人的名片信息的回调- (void)xmppvCardTempModule:(XMPPvCardTempModule *)vCardTempModule         didReceivevCardTemp:(XMPPvCardTemp *)vCardTemp                      forJID:(XMPPJID *)jid

添加好友

//name为用户账号- (void)XMPPAddFriendSubscribe:(NSString *)name  {    //XMPPHOST 就是服务器名,  主机名        XMPPJID *jid = [XMPPJID jidWithString:[NSString stringWithFormat:@"%@@%@",name,XMPPHOST]];      //[presence addAttributeWithName:@"subscription" stringValue:@"好友"];      [xmppRoster subscribePresenceToUser:jid];        }

//收到添加好友的请求- (void)xmppRoster:(XMPPRoster *)sender didReceivePresenceSubscriptionRequest:(XMPPPresence *)presence  {      //取得好友状态      NSString *presenceType = [NSString stringWithFormat:@"%@", [presence type]]; //online/offline      //请求的用户      NSString *presenceFromUser =[NSString stringWithFormat:@"%@", [[presence from] user]];      NSLog(@"presenceType:%@",presenceType);            NSLog(@"presence2:%@  sender2:%@",presence,sender);            XMPPJID *jid = [XMPPJID jidWithString:presenceFromUser];      //接收添加好友请求    [xmppRoster acceptPresenceSubscriptionRequestFrom:jid andAddToRoster:YES];    }  


删除好友

//删除好友,name为好友账号- (void)removeBuddy:(NSString *)name  {      XMPPJID *jid = [XMPPJID jidWithString:[NSString stringWithFormat:@"%@@%@",name,XMPPHOST]];            [self xmppRoster] removeUser:jid];  }