激活模塊:
_vCardStorage = [XMPPvCardCoreDataStorage sharedInstance];
_vCardTempModule = [[XMPPvCardTempModule alloc] initWithvCardStorage:_vCardStorage];
_vCardAvatarModule = [[XMPPvCardAvatarModule alloc] initWithvCardTempModule:_vCardTempModule];
[_vCardTempModule addDelegate:self delegateQueue:dispatch_get_main_queue()];
[_vCardAvatarModule addDelegate:self delegateQueue:dispatch_get_main_queue()];
[_vCardTempModule activate:_xmppStream];
[_vCardAvatarModule activate:_xmppStream];
更新名片信息:
/// 更新名片信息
- (void)updateVCardMsg
{
XMPPvCardTemp *vcard = self.vCardTempModule.myvCardTemp;
/// 自定義xml擴展名片內(nèi)容
DDXMLNode *node1 = [DDXMLNode elementWithName:@"key" stringValue:@"13877977999"];
DDXMLNode *node2 = [DDXMLNode elementWithName:@"key" stringValue:@"http://imgtu.4934501486627131.jpg"];
DDXMLNode *node3 = [DDXMLNode elementWithName:@"key" stringValue:@"美國"];
DDXMLNode *node4 = [DDXMLNode elementWithName:@"key" stringValue:@"廣東"];
DDXMLNode *node5 = [DDXMLNode elementWithName:@"key" stringValue:@"廣州"];
DDXMLNode *node6 = [DDXMLNode elementWithName:@"key" stringValue:@"男"];
DDXMLNode *node7 = [DDXMLNode elementWithName:@"key" stringValue:@"aaaa"];
vcard.nickname = @"nickname";
[vcard addChild:node1];
[vcard addChild:node2];
[vcard addChild:node3];
[vcard addChild:node4];
[vcard addChild:node5];
[vcard addChild:node6];
[vcard addChild:node7];
/// 向服務(wù)器更新名片
[_vCardTempModule updateMyvCardTemp:vcard];
}
vCard代理:XMPPvCardTempModuleDelegate
代理在登錄成功后 和 調(diào)用 [_vCardTempModule updateMyvCardTemp:vcard]; 方法后都會有一次回調(diào)。
/// 獲取到個人信息
- (void)xmppvCardTempModule:(XMPPvCardTempModule *)vCardTempModule
didReceivevCardTemp:(XMPPvCardTemp *)vCardTemp forJID:(XMPPJID *)jid {}
發(fā)送IQ消息, 獲取名片內(nèi)容:
/// 發(fā)送IQ消息, 獲取名片內(nèi)容
- (void)getVCardMsgWithUserID:(NSString *)userID
{
XMPPIQ *iq = [XMPPIQ iqWithType:@"get"];
XMPPJID *JID = [XMPPJID jidWithUser:userID domain:@"domain" resource:@"resource"];
[iq addAttributeWithName:@"to" stringValue:JID.bare];
NSXMLElement *element = [NSXMLElement elementWithName:@"vCard" xmlns:@"vcard-temp"];
[iq addChild:element];
[_xmppStream sendElement:iq];
}
發(fā)送IQ消息后都會在 代理方法有回調(diào)
- (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq
{
}