Skip to content

Commit 9895fa8

Browse files
committed
add group avatar api in iOS
1 parent 958f27a commit 9895fa8

File tree

2 files changed

+116
-1
lines changed

2 files changed

+116
-1
lines changed

index.js

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -514,7 +514,7 @@ export default class JMessage {
514514
static isGroupBlocked(params, success, error) {
515515
JMessageModule.isGroupBlocked(params, success, error)
516516
}
517-
517+
518518
/**
519519
* 获取当前用户的群屏蔽列表。
520520
*
@@ -744,7 +744,42 @@ export default class JMessage {
744744
JMessageModule.resetUnreadMessageCount(params, success, error)
745745
}
746746

747+
/**
748+
* 更新当前用户头像。
749+
*
750+
* @param {object} params = {
751+
* id: string // 目标群组的 id。
752+
* imgPath: string // 本地图片绝对路径。
753+
* }
754+
* 注意 Android 与 iOS 的文件路径是不同的:
755+
* - Android 类似:/storage/emulated/0/DCIM/Camera/IMG_20160526_130223.jpg
756+
* - iOS 类似:/var/mobile/Containers/Data/Application/7DC5CDFF-6581-4AD3-B165-B604EBAB1250/tmp/photo.jpg
757+
*/
758+
static updateGroupAvatar(params, success, error) {
759+
JMessageModule.updateGroupAvatar(params, success, error)
760+
}
747761

762+
/**
763+
* 下载用户头像缩略图,如果已经下载,不会重复下载。
764+
*
765+
* @param {object} params = {'id': String}
766+
* @param {function} success = function ({'id': String, 'filePath': String}) {}
767+
* @param {function} error = function ({'code': '错误码', 'description': '错误信息'}) {}
768+
*/
769+
static downloadThumbGroupAvatar(params, success, error) {
770+
JMessageModule.downloadThumbGroupAvatar(params, success, error)
771+
}
772+
773+
/**
774+
* 下载用户头像原图,如果已经下载,不会重复下载。
775+
*
776+
* @param {object} params = {'id': String}
777+
* @param {function} success = function ({'id': String, 'filePath': String}) {}
778+
* @param {function} error = function ({'code': '错误码', 'description': '错误信息'}) {}
779+
*/
780+
static downloadOriginalGroupAvatar(params, success, error) {
781+
JMessageModule.downloadOriginalGroupAvatar(params, success, error)
782+
}
748783

749784
/**
750785
*

ios/RCTJMessageModule/RCTJMessageModule.m

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2484,4 +2484,84 @@ - (JMSGOptionalContent *)convertDicToJMSGOptionalContent:(NSDictionary *)dic {
24842484
successCallback(@[groupList]);
24852485
}];
24862486
}
2487+
2488+
RCT_EXPORT_METHOD(updateGroupAvatar:(NSDictionary *)param
2489+
successCallback:(RCTResponseSenderBlock)successCallback
2490+
failCallBack:(RCTResponseSenderBlock)failCallback) {
2491+
2492+
if (!param[@"id"]) {
2493+
failCallback(@[[self getParamError]]);
2494+
return;
2495+
}
2496+
2497+
NSString *mediaPath = param[@"imgPath"];
2498+
2499+
if([[NSFileManager defaultManager] fileExistsAtPath: mediaPath]){
2500+
mediaPath = mediaPath;
2501+
NSData *img = [[NSData dataWithContentsOfFile: mediaPath];
2502+
2503+
[JMSGGroup updateGroupAvatarWithGroupId:param[@"id"] avatarData:img avatarFormat:[mediaPath pathExtension] completionHandler:^(id resultObject, NSError *error) {
2504+
if (!error) {
2505+
successCallback(@[]);
2506+
} else {
2507+
failCallback(@[[error errorToDictionary]]);
2508+
}
2509+
}];
2510+
} else {
2511+
failCallback(@[[self getParamError]]);
2512+
}
2513+
}
2514+
2515+
RCT_EXPORT_METHOD(downloadThumbGroupAvatar:(NSDictionary *)param
2516+
successCallback:(RCTResponseSenderBlock)successCallback
2517+
failCallBack:(RCTResponseSenderBlock)failCallback) {
2518+
2519+
if (!param[@"id"]) {
2520+
failCallback(@[[self getParamError]]);
2521+
return;
2522+
}
2523+
2524+
[JMSGGroup groupInfoWithGroupId:param[@"id"] completionHandler:^(id resultObject, NSError *error) {
2525+
if (error) {
2526+
failCallback(@[[error errorToDictionary]]);
2527+
return ;
2528+
}
2529+
2530+
JMSGGroup *group = resultObject;
2531+
[group thumbAvatarData:^(NSData *data, NSString *objectId, NSError *error) {
2532+
if (error) {
2533+
failCallback(@[[error errorToDictionary]]);
2534+
return ;
2535+
}
2536+
2537+
successCallback(@[@{@"id": objectId, @"filePath": group.thumbAvatarLocalPath}]);
2538+
}];
2539+
}];
2540+
}
2541+
2542+
RCT_EXPORT_METHOD(downloadOriginalGroupAvatar:(NSDictionary *)param
2543+
successCallback:(RCTResponseSenderBlock)successCallback
2544+
failCallBack:(RCTResponseSenderBlock)failCallback) {
2545+
if (!param[@"id"]) {
2546+
failCallback(@[[self getParamError]]);
2547+
return;
2548+
}
2549+
2550+
[JMSGGroup groupInfoWithGroupId:param[@"id"] completionHandler:^(id resultObject, NSError *error) {
2551+
if (error) {
2552+
failCallback(@[[error errorToDictionary]]);
2553+
return ;
2554+
}
2555+
2556+
JMSGGroup *group = resultObject;
2557+
[group largeAvatarData:^(NSData *data, NSString *objectId, NSError *error) {
2558+
if (error) {
2559+
failCallback(@[[error errorToDictionary]]);
2560+
return ;
2561+
}
2562+
2563+
successCallback(@[@{@"id": objectId, @"filePath": group.largeAvatarLocalPath}]);
2564+
}];
2565+
}];
2566+
}
24872567
@end

0 commit comments

Comments
 (0)