原始地址: 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];
- }