我怎样才能得到朋友vcard avtar照片xmpp ios

问题描述:

我怎样才能得到朋友vcard avtar照片xmpp ios?请帮我任何一个...感谢提前我怎样才能得到朋友vcard avtar照片xmpp ios

XMPPvCardTemp * myvCardTemp = [自我xmppvCardTempModule]; //或者检查是否存在不

if (!myvCardTemp)//if not then create a new vcard 
{ 
    NSXMLElement *vCardXML = [NSXMLElement elementWithName:@"vCard" xmlns:@"vcard-temp"]; 
    XMPPvCardTemp *newvCardTemp = [self.xmppvCardTempModule vCardTempFromElement:vCardXML]; 
    [newvCardTemp setNickname:userName]; 
    [self updateMyvCardTemp:newvCardTemp]; 
} 

NSString *str = [[NSUserDefaults standardUserDefaults] stringForKey:user_ID]; 

[self.xmppvCardTempModule fetchvCardTempForJID:str]; 
+0

试试这个http://*.com/questions/13227017/xmppframework-how-can-i-update-my-own-avatar-image可能会有帮助。 – 2014-12-19 05:57:49

+0

您好Velmurugan,实际上我能够成功地取消我的avtar。但现在无法获得朋友avtar并将其显示在朋友表视图中。请帮助我解决这个问题,因为iam完全是xmpp的新功能。并且非常感谢您的快速回复:0 – 2014-12-19 06:21:03

初始化并激活xmppvCardAvatarModule模块。

- (void) fetchVCardFor:(NSString *)toUser 
    { 
     XMPPJID *myJID = [XMPPJID jidWithUser:[toUser stringByReplacingOccurrencesOfString:@"+" withString:@""] domain:self.domain resource:self.resource]; 
     [self.xmppvCardTempModule fetchvCardTempForJID:myJID useCache:YES]; 
    } 

您将获得的智商,结果如下:

- (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq 
    { 
     XMPPvCardTemp *vCardTemp = [XMPPvCardTemp vCardTempCopyFromIQ:iq]; 
     if (vCardTemp != nil) 
     { 
      [self _updatevCardTemp:vCardTemp forJID:[iq from]]; 
      return YES; 
     } 
     return NO; 
} 

你可以得到你的朋友,电子名片头像图片通过XMPPUserCoreDataStorageObject信息(如果你的朋友已经设置有图像)。

-(UIImage*)GetFriendImage:(XMPPUserCoreDataStorageObject *)user { 

    //Check user has image on XMPPUserCoreDataStorageObject or not. 
    if (user.photo != nil) { 
     return user.photo; 
    } else { 

     //Retrive image from xmppvCardAvatarModule 
     NSData *photoData = [[[self appDelegate] 
     xmppvCardAvatarModule] photoDataForJID:user.jid]; 

     //Check xmppvCardAvatarModule has image or not, if xmppvCardAvatarModule return nil means your friend not set there image, so return your any default image. 
     if (photoData != nil) { 
      return [UIImage imageWithData:photoData]; 
     } else { 
      return [UIImage imageNamed:@"defaultImage"]; 
     } 
    } 
} 

这里[self appDelegate]是定义为

- (AppDelegate *)appDelegate { 
    return (AppDelegate *)[[UIApplication sharedApplication] delegate]; 
} 

我定义我所有的XMPP对象属性AppDelegate.h文件

@property (nonatomic, readonly) XMPPvCardAvatarModule *xmppvCardAvatarModule; 

电子名片,进口#import "XMPPvCardAvatarModule.h"文件或其他检查这个文件已经导入#import "XMPPFramework.h"文件比忽略重新导入。

您可以使用自己的JID IKE在此

XMPPUserCoreDataStorageObject *user = [[[self appDelegate] xmppRosterStorage] 
              userForJID:userJID 
              xmppStream:[[self appDelegate] xmppStream] 
           managedObjectContext:[[self appDelegate] managedObjectContext_roster]]; 

而在这之后通过此用户对象GetFriendImage以检索好友图像检索XMPPUserCoreDataStorageObject“用户对象”。