Skip to content

Commit b302f60

Browse files
committed
add conversation extension , updateMyinfo add extra, user and conversation to json add extras key
1 parent 9895fa8 commit b302f60

File tree

3 files changed

+41
-13
lines changed

3 files changed

+41
-13
lines changed

index.js

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,10 +117,11 @@ export default class JMessage {
117117
*
118118
* @param {object} params = {'field': '需要更新的字段值'}
119119
*
120-
* field 包括:nickname(昵称), birthday(生日), signature(签名), gender(性别), region(地区), address(具体地址)。
120+
* field 包括:nickname(昵称), birthday(生日), signature(签名), gender(性别), region(地区), address(具体地址),extras (附加信息)
121121
* 如:{
122122
* 'birthday': Number, // 生日日期的微秒数
123123
* 'gender': String, // 'male' / 'female' / 'unknown'
124+
* 'extras': {String: String} // 附加字段
124125
* ... // 其余皆为 String 类型
125126
* }
126127
* @param {function} success = function () {}
@@ -781,6 +782,25 @@ export default class JMessage {
781782
JMessageModule.downloadOriginalGroupAvatar(params, success, error)
782783
}
783784

785+
/**
786+
* 增加或更新扩展字段,可扩展会话属性,比如:会话置顶、标识特殊会话等
787+
*
788+
* @param {object} params = {
789+
* 'extra': Object // 附加字段对象
790+
* 'type': String, // 'single' / 'group'
791+
* 'groupId': String, // 目标群组 id。
792+
* 'username': String, // 目标用户名。
793+
* 'appKey': String, // 目标用户所属 AppKey。
794+
* }
795+
* @param {function} success = function ({'id': String, 'filePath': String}) {}
796+
* @param {function} error = function ({'code': '错误码', 'description': '错误信息'}) {}
797+
*/
798+
static setConversationExtras(params, success, error) {
799+
JMessageModule.setConversationExtras(params, success, error)
800+
}
801+
802+
803+
784804
/**
785805
*
786806
* JMessage Events

ios/RCTJMessageModule/JMessageHelper.m

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,7 @@ -(NSMutableDictionary*)conversationToDictionary{
256256
dict[@"latestMessage"] = [self.latestMessage messageToDictionary];
257257
dict[@"unreadCount"] = self.unreadCount;
258258
dict[@"title"] = [self title];
259+
dict[@"extras"] = [self getConversationExtras];
259260
return dict;
260261
}
261262

@@ -278,6 +279,7 @@ -(NSMutableDictionary*)userToDictionary{
278279
dict[@"isNoDisturb"] = @(self.isNoDisturb);
279280
dict[@"isInBlackList"] = @(self.isInBlacklist);
280281
dict[@"isFriend"] = @(self.isFriend);
282+
dict[@"extras"] = self.extras;
281283

282284
if([[NSFileManager defaultManager] fileExistsAtPath: [self thumbAvatarLocalPath] ?: @""]){
283285
dict[@"avatarThumbPath"] = [self thumbAvatarLocalPath];

ios/RCTJMessageModule/RCTJMessageModule.m

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -290,15 +290,14 @@ - (void)conversationChanged:(NSNotification *)notification {
290290
if([[NSFileManager defaultManager] fileExistsAtPath: mediaPath]){
291291
mediaPath = mediaPath;
292292
NSData *img = [NSData dataWithContentsOfFile: mediaPath];
293-
294-
[JMSGUser updateMyInfoWithParameter:img userFieldType:kJMSGUserFieldsAvatar completionHandler:^(id resultObject, NSError *error) {
295-
if (!error) {
296-
successCallback(@[]);
297-
} else {
298-
failCallback(@[[error errorToDictionary]]);
299-
}
293+
294+
[JMSGUser updateMyAvatarWithData:img avatarFormat:[mediaPath pathExtension] completionHandler:^(id resultObject, NSError *error) {
295+
if (!error) {
296+
successCallback(@[]);
297+
} else {
298+
failCallback(@[[error errorToDictionary]]);
299+
}
300300
}];
301-
302301
} else {
303302
failCallback(@[[self getParamError]]);
304303
}
@@ -323,6 +322,10 @@ - (void)conversationChanged:(NSNotification *)notification {
323322
info.signature = param[@"signature"];
324323
}
325324

325+
if (param[@"extras"]) {
326+
info.extras = param[@"extras"];
327+
}
328+
326329
if (param[@"gender"]) {
327330
if ([param[@"gender"] isEqualToString:@"male"]) {
328331
info.gender = kJMSGUserGenderMale;
@@ -498,7 +501,7 @@ - (JMSGOptionalContent *)convertDicToJMSGOptionalContent:(NSDictionary *)dic {
498501

499502
if ([param[@"type"] isEqual: @"single"] && param[@"username"] != nil) {
500503
JMSGImageContent *content = [[JMSGImageContent alloc] initWithImageData: [NSData dataWithContentsOfFile: mediaPath]];
501-
504+
content.format = [mediaPath pathExtension];
502505
content.uploadHandler = ^(float percent, NSString *msgID) {
503506
[self.bridge.eventDispatcher sendAppEventWithName:uploadProgressEvent body:@{@"messageId": msgID,
504507
@"progress": @(percent)}];
@@ -529,7 +532,7 @@ - (JMSGOptionalContent *)convertDicToJMSGOptionalContent:(NSDictionary *)dic {
529532

530533
} else if ([param[@"type"] isEqual: @"group"] && param[@"groupId"] != nil) {
531534
JMSGImageContent *content = [[JMSGImageContent alloc] initWithImageData: [NSData dataWithContentsOfFile: mediaPath]];
532-
535+
content.format = [mediaPath pathExtension];
533536
content.uploadHandler = ^(float percent, NSString *msgID) {
534537

535538
[self.bridge.eventDispatcher sendAppEventWithName:uploadProgressEvent body:@{@"messageId": msgID,
@@ -1946,6 +1949,7 @@ - (JMSGOptionalContent *)convertDicToJMSGOptionalContent:(NSDictionary *)dic {
19461949
}
19471950

19481951
if ([param[@"type"] isEqualToString:@"single"]) {
1952+
19491953
[JMSGConversation createSingleConversationWithUsername:param[@"username"]
19501954
appKey:appKey
19511955
completionHandler:^(id resultObject, NSError *error) {
@@ -2255,7 +2259,9 @@ - (JMSGOptionalContent *)convertDicToJMSGOptionalContent:(NSDictionary *)dic {
22552259
}
22562260

22572261
if ([param[@"messageType"] isEqualToString:@"image"]) {
2258-
content = [[JMSGImageContent alloc] initWithImageData: [NSData dataWithContentsOfFile: mediaPath]];
2262+
JMSGImageContent *imgContent = [[JMSGImageContent alloc] initWithImageData: [NSData dataWithContentsOfFile: mediaPath]];
2263+
imgContent.format = [mediaPath pathExtension];
2264+
content = imgContent;
22592265
}
22602266

22612267
if ([param[@"messageType"] isEqualToString:@"voice"]) {
@@ -2498,7 +2504,7 @@ - (JMSGOptionalContent *)convertDicToJMSGOptionalContent:(NSDictionary *)dic {
24982504

24992505
if([[NSFileManager defaultManager] fileExistsAtPath: mediaPath]){
25002506
mediaPath = mediaPath;
2501-
NSData *img = [[NSData dataWithContentsOfFile: mediaPath];
2507+
NSData *img = [NSData dataWithContentsOfFile: mediaPath];
25022508

25032509
[JMSGGroup updateGroupAvatarWithGroupId:param[@"id"] avatarData:img avatarFormat:[mediaPath pathExtension] completionHandler:^(id resultObject, NSError *error) {
25042510
if (!error) {

0 commit comments

Comments
 (0)