XMPPFramework(四)电子名片

前面向大家介绍了好友列表,那么个人的用户信息:头像、邮箱、住址啊等等,这些信息在哪呢?这时候我们就需要先认识下面几个类了:

//电子名片模块
@property(nonatomic,strong)XMPPvCardTempModule *vCardTempModule;
//电子名片本地存储器
@property(nonatomic,strong)XMPPvCardCoreDataStorage *vCardCoreDataStorage;
//头像模块
@property(nonatomic,strong)XMPPvCardAvatarModule *vCardAvatarModule;

那么首先,我们要初始化并激活它们

self.vCardCoreDataStorage = [XMPPvCardCoreDataStorage sharedInstance];
self.vCardTempModule = [[XMPPvCardTempModule alloc]initWithvCardStorage:self.vCardCoreDataStorage];
[self.vCardTempModule activate:self.stream];
[self.vCardTempModule addDelegate:self delegateQueue:dispatch_get_main_queue()];
self.vCardAvatarModule = [[XMPPvCardAvatarModule alloc]initWithvCardTempModule:self.vCardTempModule];
[self.vCardAvatarModule activate:self.stream];
[self.vCardAvatarModule addDelegate:self delegateQueue:dispatch_get_main_queue()];

接下来,获取个人名片信息

    //xmpp提供了一个方法,直接获取个人信息
    XMPPvCardTemp *myCard = [XMPPManager sharedInstance].vCardTempModule.myvCardTemp;
    
    UIImage *image=[UIImage imageWithData:myCard.photo];//头像
    NSString *nickName =myCard.nickname;//昵称
    NSString *orgName =myCard.orgName;//公司
    NSString *orgUnits =myCard.orgUnits[0];//部门
    NSString *title=myCard.title;//职位
    NSString *telecomsAddresses=myCard.telecomsAddresses[0];//电话号XMPP没有获取返回nil
    NSString *mailer=myCard.mailer;//邮箱

如果我们无法获取到自己或好友的本地头像信息,我们可以通过Jid来从服务器获取

        // 从服务器上取数据
        NSData * imagedata = [[XMPPManager sharedInstance].vCardAvatarModule photoDataForJID:model.jid];

你可能感兴趣的:(XMPPFramework(四)电子名片)