Skip to content

Commit a1d5a04

Browse files
guangyaoguangyao
authored andcommitted
add resend message
1 parent 1df3e8d commit a1d5a04

File tree

3 files changed

+27
-10
lines changed

3 files changed

+27
-10
lines changed

ios/RNNeteaseIm/RNNeteaseIm/ConversationViewController.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,5 +72,6 @@ typedef void(^Errors)(id erro);
7272
- (NSString *)tipOnMessageRevoked:(id)message;
7373
//更具提示生成撤回消息
7474
- (NIMMessage *)msgWithTip:(NSString *)tip;
75-
75+
//重发消息
76+
- (void)resendMessage:(NSString *)messageID;
7677
@end

ios/RNNeteaseIm/RNNeteaseIm/ConversationViewController.m

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,17 @@ -(void)localSessionList:(NSString *)sessionId sessionType:(NSString *)sessionTyp
7575
// NIMMessageSearchOption *option = [[NIMMessageSearchOption alloc]init];
7676
}
7777

78+
//重发消息
79+
- (void)resendMessage:(NSString *)messageID{
80+
NSArray *currentMessage = [[[NIMSDK sharedSDK] conversationManager] messagesInSession:_session messageIds:@[messageID] ];
81+
NIMMessage *currentM = currentMessage[0];
82+
if (currentM.isReceivedMsg) {
83+
[[[NIMSDK sharedSDK] chatManager] fetchMessageAttachment:currentM error:nil];
84+
}else{
85+
[[[NIMSDK sharedSDK] chatManager] resendMessage:currentM error:nil];
86+
}
87+
}
88+
7889
-(void)localSession:(NSInteger)index cerrentmessageId:(NSString *)currentMessageID success:(Success)succe err:(Errors)err{
7990
_index = index;
8091
[[NIMSDK sharedSDK].conversationManager markAllMessagesReadInSession:_session];
@@ -140,10 +151,10 @@ -(NSMutableArray *)setTimeArr:(NSArray *)messageArr{
140151
[dic setObject:@"send_failed" forKey:@"status"];
141152
break;
142153
case NIMMessageDeliveryStateDelivering:
143-
[dic setObject:@"kMsgStatusSending" forKey:@"status"];
154+
[dic setObject:@"send_going" forKey:@"status"];
144155
break;
145156
case NIMMessageDeliveryStateDeliveried:
146-
[dic setObject:@"kMsgStatusSuccess" forKey:@"status"];
157+
[dic setObject:@"send_succeed" forKey:@"status"];
147158
break;
148159
default:
149160
[dic setObject:@"-1" forKey:@"status"];
@@ -506,18 +517,18 @@ -(void)muteMessage:(NSString *)contactId mute:(NSString *)mute Succ:(Success)suc
506517

507518
- (void)willSendMessage:(NIMMessage *)message
508519
{
509-
[self refrashMessage:message From:@"send" isStart:YES];
520+
[self refrashMessage:message From:@"send"];
510521
NIMModel *model = [NIMModel initShareMD];
511522
model.startSend = @{@"start":@"true"};
512523
}
513524
//发送结果
514525
- (void)sendMessage:(NIMMessage *)message didCompleteWithError:(NSError *)error
515526
{
516527
if (!error) {
517-
[self refrashMessage:message From:@"send" isStart:NO];
528+
[self refrashMessage:message From:@"send"];
518529
[[NSUserDefaults standardUserDefaults]setObject: [NSString stringWithFormat:@"%f", message.timestamp] forKey:@"timestamp"];
519530
}else{
520-
[self refrashMessage:message From:@"send" isStart:NO];
531+
[self refrashMessage:message From:@"send"];
521532
}
522533
NIMModel *model = [NIMModel initShareMD];
523534
if ([[NSString stringWithFormat:@"%@", error] isEqualToString:@"(null)"]) {
@@ -530,7 +541,7 @@ - (void)sendMessage:(NIMMessage *)message didCompleteWithError:(NSError *)error
530541
//发送进度
531542
-(void)sendMessage:(NIMMessage *)message progress:(float)progress
532543
{
533-
[self refrashMessage:message From:@"send" isStart:NO];
544+
[self refrashMessage:message From:@"send" ];
534545
NIMModel *model = [NIMModel initShareMD];
535546
model.endSend = @{@"progress":[NSString stringWithFormat:@"%f",progress]};
536547
}
@@ -541,7 +552,7 @@ - (void)onRecvMessages:(NSArray *)messages
541552
{
542553
NIMMessage *message = messages.firstObject;
543554
if ([message.session.sessionId isEqualToString:_sessionID]) {
544-
[self refrashMessage:message From:@"receive" isStart:NO];
555+
[self refrashMessage:message From:@"receive" ];
545556
NIMMessageReceipt *receipt = [[NIMMessageReceipt alloc] initWithMessage:message];
546557

547558
[[[NIMSDK sharedSDK] chatManager] sendMessageReceipt:receipt
@@ -744,7 +755,7 @@ - (void)onReceiveCustomSystemNotification:(NIMCustomSystemNotification *)notific
744755
}
745756

746757

747-
-(void)refrashMessage:(NIMMessage *)message From:(NSString *)from isStart:(BOOL)isStart{
758+
-(void)refrashMessage:(NIMMessage *)message From:(NSString *)from {
748759
NSMutableArray *messageArr = [NSMutableArray array];
749760
NSMutableDictionary *dic2 = [NSMutableDictionary dictionary];
750761
NIMUser *user = [[NIMSDK sharedSDK].userManager userInfo:message.from];
@@ -768,7 +779,6 @@ -(void)refrashMessage:(NIMMessage *)message From:(NSString *)from isStart:(BOOL)
768779
[dic2 setObject:[NSString stringWithFormat:@"%@", message.text] forKey:@"text"];
769780
[dic2 setObject:[NSString stringWithFormat:@"%@", message.session.sessionId] forKey:@"sessionId"];
770781
[dic2 setObject:[NSString stringWithFormat:@"%ld", message.session.sessionType] forKey:@"sessionType"];
771-
[dic2 setObject:[NSNumber numberWithBool:isStart] forKey:@"isStart"];
772782
switch (message.deliveryState) {
773783
case NIMMessageDeliveryStateFailed:
774784
[dic2 setObject:@"send_failed" forKey:@"status"];

ios/RNNeteaseIm/RNNeteaseIm/RNNeteaseIm.m

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,12 @@ - (void)updateMessageList{
356356
resolve(param);
357357
}];
358358
}
359+
//重发消息
360+
RCT_EXPORT_METHOD(resendMessage:(nonnull NSString *)messageId){
361+
[[ConversationViewController initWithConversationViewController]resendMessage:messageId];
362+
363+
}
364+
359365
//删除会话内容
360366
RCT_EXPORT_METHOD(deleteMessage:(nonnull NSString *)messageId){
361367
[[ConversationViewController initWithConversationViewController]deleteMsg:messageId];

0 commit comments

Comments
 (0)