暖暖视频免费观**,国产免费美女被艹视频,毛片一级毛片,不卡三级

智慧服務(wù),成就美好體驗 項目咨詢

主頁 > 服務(wù)與支持 > 開發(fā)平臺 > 客戶端SDK參考 > iOS Native SDK > 企業(yè)通訊錄 設(shè)置和獲取聯(lián)系人頭像

入門使用

設(shè)置和獲取聯(lián)系人頭像

更新時間:2019-11-20

描述

用戶可以更改自己的頭像,使用的頭像可以是系統(tǒng)頭像也可以是自定義頭像。同時用戶可以獲取頭像,在獲取頭像時服務(wù)器會推送獲取頭像的回調(diào)消息給用戶,從服務(wù)器上得到指定聯(lián)系人的頭像信息。

已完成組件的初始化和登錄。

業(yè)務(wù)流程

設(shè)置系統(tǒng)頭像

圖1 設(shè)置系統(tǒng)頭像流程 
  1. UI調(diào)用tsdk_set_system_icon()設(shè)置系統(tǒng)頭像。
    說明: 
    1. 參數(shù)icon_id是指系統(tǒng)默認(rèn)頭像圖片文件的圖片名。圖片名一般是數(shù)字。這些圖片文件保存在用戶的本地文件夾中。這些圖片不需要從服務(wù)器上獲取。
    2. 禁止修改系統(tǒng)默認(rèn)頭像圖片的文件名,以免造成icon_id對應(yīng)的圖片文件與其他用戶不一致,導(dǎo)致界面顯示用戶系統(tǒng)默認(rèn)頭像不一致。
    3. 頭像大小建議不要超過2M,否則可能影響UI性能。

    代碼示例:

    - (void)setSystemHead:(int)sysIconID withCmpletion:(void(^)(BOOL result))completionBlock 
    {   
        TSDK_RESULT set_sys_result = tsdk_set_system_icon((TSDK_UINT32)sysIconID);    
        BOOL result = set_sys_result == TSDK_SUCCESS;    
        if (completionBlock) 
        {        
            completionBlock(result);    
        }    
        if (result) 
        {        
            [self setHeadID:[NSString stringWithFormat:@"%d", sysIconID]];    
        }
    }
     

 

設(shè)置自定義頭像

圖2 設(shè)置自定義頭像流程 
  1. UI調(diào)用tsdk_set_user_def_icon()設(shè)置自定義頭像。
    說明: 
    1. 設(shè)置自定義頭像需注意:在參數(shù)TSDK_S_ICON_INFO自定義頭像信息里需要設(shè)置頭像的路徑,并且頭像一般需要選擇為:小頭像52*52、中頭像120*120和大頭像320*320三種。其中具體大小應(yīng)根據(jù)服務(wù)器要求來定;
    2. 圖片的格式不支持TIFF格式,推薦使用png格式;
    3. 圖片的大小服務(wù)器沒有限制,產(chǎn)品可以根據(jù)實際的需要進(jìn)行限制,建議圖片大小最大值為2MB;
    4. 若返回成功,則返回設(shè)置成功和修改時間,否則返回相應(yīng)的錯誤碼。

    代碼示例:

    - (void)setHeadImage:(UIImage *)image completion:(void(^)(BOOL result, NSString *headID))completionBlock 
    {    
    //自定義頭像接口需要上傳三種尺寸的圖片:52x52   120x120   320x320     
        NSData *minImg = [self imgWithSize:SIZE52 image:image];    
        NSData *midImg = [self imgWithSize:SIZE120 image:image];    
        NSData *maxImg = [self imgWithSize:SIZE320 image:image];    
        NSString *path = NSTemporaryDirectory();    
        NSString *iconPathMinImg = [path stringByAppendingPathComponent:@"minImg"];    
        NSString *iconPathMidImg = [path stringByAppendingPathComponent:@"midImg"];    
        NSString *iconPathMaxImg = [path stringByAppendingPathComponent:@"maxImg"];    
        [minImg writeToFile:iconPathMinImg atomically:YES];    
        [midImg writeToFile:iconPathMidImg atomically:YES];    
        [maxImg writeToFile:iconPathMaxImg atomically:YES];        
        TSDK_S_ICON_INFO* icon_info = (TSDK_S_ICON_INFO*)malloc(sizeof(TSDK_S_ICON_INFO));    
        memset(icon_info, 0, sizeof(TSDK_S_ICON_INFO));    
        strcpy(icon_info->small_icon_path, [iconPathMinImg UTF8String]);    
        strcpy(icon_info->medium_icon_path, [iconPathMidImg UTF8String]);    
        strcpy(icon_info->large_icon_path, [iconPathMaxImg UTF8String]);    
        TSDK_CHAR *modifyTime = (TSDK_CHAR *)malloc(16);    
        memset_s(modifyTime, 16, 0, 16);    
        TSDK_UINT32 length = 16;        
        TSDK_RESULT ret_set_def = tsdk_set_user_def_icon(icon_info, modifyTime, &length);    
        free(icon_info);    
    // 出參modifyTime時間戳,作為聯(lián)系人headId    
        NSString *mTime = [NSString stringWithUTF8String:modifyTime];    
        DDLogInfo(@"set image ret: %d modify time: %@", length, mTime);    
        BOOL result = ret_set_def == TSDK_SUCCESS;    
        if (completionBlock) 
        {        
            completionBlock(result, mTime);    
        }    
        if (result) 
        {        
            [self setHeadID:mTime];    
        }
    }
     

 

獲取聯(lián)系人頭像

圖3 搜索聯(lián)系人頭像流程 
  1. UI調(diào)用tsdk_get_user_icon()搜索聯(lián)系人頭像。
    說明: 

    傳入的參數(shù)TSDK_S_GET_ICON_PARAM即為獲取頭像請求參數(shù),需要填寫查詢的帳戶以及序列號。

    代碼示例:
    - (void)loadPersonHeadIconWithAccount:(NSString *)account 
    {    
        TSDK_S_GET_ICON_PARAM *iconParam = (TSDK_S_GET_ICON_PARAM *)malloc(sizeof(TSDK_S_GET_ICON_PARAM));    
        memset(iconParam, 0, sizeof(TSDK_S_GET_ICON_PARAM));   
        if (account.length > 0 && account != nil) 
        {        
            strcpy(iconParam->account, [account UTF8String]);    
        }    
        iconParam->seq_no = rand();    
        TSDK_RESULT result = tsdk_get_user_icon(iconParam);    
        DDLogInfo(@"tsdk_get_user_icon result: %d", result);    
        free(iconParam);
    }
     
  2. SDK收到服務(wù)器下發(fā)的獲取聯(lián)系人頭像結(jié)果,下發(fā)TSDK_E_EADDR_EVT_GET_ICON_RESULT的事件,通知給UI所查詢的聯(lián)系人頭像內(nèi)容。
    說明: 

    查詢頭像的結(jié)果信息包括操作結(jié)果,查詢序號,系統(tǒng)頭像id(用戶設(shè)置的是系統(tǒng)頭像)或者自定義頭像文件路徑(用戶設(shè)置的是自定義頭像)。

    代碼示例:
    case TSDK_E_EADDR_EVT_GET_ICON_RESULT: 
    {                
        DDLogInfo(@"TSDK_E_EADDR_EVT_GET_ICON_RESULT");                
        BOOL result = notification.param1 == TSDK_SUCCESS;                
        if (!result) 
        {                     
            DDLogError(@"TSDK_E_EADDR_EVT_GET_ICON_RESULT,error:%@",[NSString stringWithUTF8String:(TSDK_CHAR *)notification.data]);                    
            return;                
        }                                
        TSDK_S_GET_ICON_RESULT *getIconResult = (TSDK_S_GET_ICON_RESULT *)notification.data;                
        int sysIconID = getIconResult->icon_id;                
        NSString *acIconFile = [NSString stringWithUTF8String:getIconResult->icon_path];                                
        NSDictionary *resultInfo = @{
            TUP_CONTACT_EVENT_RESULT_KEY : [NSNumber numberWithBool:result],                                             
            TUP_SYS_ICON_ID_KEY : [NSString stringWithFormat:@"%d", sysIconID],                                             
            TUP_ICON_FILE_KEY : [NSString stringWithFormat:@"%@%@", ICON_PATH, acIconFile]
        };                
        [self respondsContactDelegateWithType:CONTACT_E_SEARCH_GET_ICON_RESULT result:resultInfo];            
    }               
     break;
     

注意事項

無。