当前位置: 首页 > 工具软件 > XMPPFramework > 使用案例 >

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

严稳
2023-12-01

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


 类似资料: