【问题标题】:how to update user avatar in XMPPvCardAvatarModule swift 3.0如何在 XMPPvCardAvatarModule swift 3.0 中更新用户头像
【发布时间】:2017-09-18 07:51:25
【问题描述】:

我正在使用 XMPPFramework 在我的 iOS 应用程序中聊天,但我需要在用户更新个人资料图片时更新用户头像,但我不知道我是如何实现这个的。我实现了 XMPPvCardAvatarModule 和 XMPPvCardTempModule 但我不明白如何将这些模块中的用户图片传递给其他用户。更新图片后,所有用户都会收到关于 Avatar 更新的 XMPP 通知。

任何人有想法请与我分享我是 XMPP 的新手。

提前致谢

【问题讨论】:

    标签: ios swift swift3 xmpp xmppframework


    【解决方案1】:

    您可以通过

    更改登录用户头像
    #pragma mark - Update avatar image Methode.
    -(void)changeUserImage:(UIImage*)image {
    
        NSData *imageData = UIImagePNGRepresentation(image);
    
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    
            //Create XML for first time VCARD Save.
            NSXMLElement *vCardXML = [NSXMLElement elementWithName:@"vCard" xmlns:@"vcard-temp"];
            NSXMLElement *photoXML = [NSXMLElement elementWithName:@"PHOTO"];
            NSXMLElement *typeXML = [NSXMLElement elementWithName:@"TYPE"stringValue:@"image/jpeg"];
    
            //Convert image to bbase64String
            NSString *base64String = [imageData base64EncodedStringWithOptions:0];
    
            NSXMLElement *binvalXML = [NSXMLElement elementWithName:@"BINVAL" stringValue:base64String];
    
            [photoXML addChild:typeXML];
            [photoXML addChild:binvalXML];
            [vCardXML addChild:photoXML];
    
            //Update user avatar on local database.
            XMPPvCardTemp *myvCardTemp = [[[XmppHandler sharedInstance] xmppvCardTempModule]myvCardTemp];
            NSLog(@"%@",myvCardTemp);
    
            if (myvCardTemp) {
                [myvCardTemp setPhoto:imageData];
                [[[self appDelegate] xmppvCardTempModule] updateMyvCardTemp
                 :myvCardTemp];
    
            } else {
    
                XMPPvCardTemp *newvCardTemp = [XMPPvCardTemp vCardTempFromElement:vCardXML];
                [[[self appDelegate] xmppvCardTempModule] updateMyvCardTemp:newvCardTemp];
            }
        });
    }
    

    【讨论】:

      猜你喜欢
      • 2017-01-29
      • 1970-01-01
      • 2016-02-06
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多