1212
1313@implementation NIMMessageMaker
1414
15- + (NIMMessage*)msgWithText : (NSString *)text
15+ + (NIMMessage*)msgWithText : (NSString *)text andApnsMembers : ( NSArray *) members andeSession : (NIMSession *) session
1616{
17- NIMMessage *textMessage = [[NIMMessage alloc ] init ];
18- textMessage.text = text;
19- return textMessage;
17+
18+ NIMMessage *message = [[NIMMessage alloc ] init ];
19+ message.text = text;
20+ message.apnsContent = text;
21+ if (members.count ) {
22+ NIMMessageApnsMemberOption *apnsMemberOption = [[NIMMessageApnsMemberOption alloc ]init];
23+ apnsMemberOption.userIds = members;
24+ apnsMemberOption.forcePush = YES ;
25+ apnsMemberOption.apnsContent = @" 有人@了你" ;
26+ message.apnsMemberOption = apnsMemberOption;
27+ }
28+ message.apnsContent = text;
29+ [NIMMessageMaker setupMessagePushBody: message andSession: session];
30+ return message;
2031}
2132
22- + (NIMMessage*)msgWithAudio : (NSString *)filePath
33+ + (NIMMessage*)msgWithAudio : (NSString *)filePath andeSession : (NIMSession *) session
2334{
2435 NIMAudioObject *audioObject = [[NIMAudioObject alloc ] initWithSourcePath: filePath];
2536 NIMMessage *message = [[NIMMessage alloc ] init ];
2637 message.messageObject = audioObject;
2738 message.text = @" 发来了一段语音" ;
39+ [NIMMessageMaker setupMessagePushBody: message andSession: session];
2840 return message;
2941}
30- + (NIMMessage*)msgWithCustom : (NIMObject *)attachment
42+ + (NIMMessage*)msgWithCustom : (NIMObject *)attachment andeSession : (NIMSession *) session
3143{
3244
3345 NIMMessage *message = [[NIMMessage alloc ] init ];
3446 NIMCustomObject *customObject = [[NIMCustomObject alloc ] init ];
3547 customObject.attachment = attachment;
3648 message.messageObject = customObject;
3749 message.apnsContent = @" 发来了一条未知消息" ;
50+ [NIMMessageMaker setupMessagePushBody: message andSession: session];
3851 return message;
3952}
40- + (NIMMessage*)msgWithCustomAttachment : (DWCustomAttachment *)attachment
53+ + (NIMMessage*)msgWithCustomAttachment : (DWCustomAttachment *)attachment andeSession : (NIMSession *) session
4154{
4255
4356 NIMMessage *message = [[NIMMessage alloc ] init ];
@@ -71,10 +84,11 @@ + (NIMMessage*)msgWithCustomAttachment:(DWCustomAttachment *)attachment
7184 break ;
7285 }
7386 message.apnsContent = text;
87+ [NIMMessageMaker setupMessagePushBody: message andSession: session];
7488 return message;
7589}
7690
77- + (NIMMessage*)msgWithVideo : (NSString *)filePath
91+ + (NIMMessage*)msgWithVideo : (NSString *)filePath andeSession : (NIMSession *) session
7892{
7993 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc ] init ];
8094 [dateFormatter setDateFormat: @" yyyy-MM-dd HH:mm" ];
@@ -84,18 +98,19 @@ + (NIMMessage*)msgWithVideo:(NSString*)filePath
8498 NIMMessage *message = [[NIMMessage alloc ] init ];
8599 message.messageObject = videoObject;
86100 message.apnsContent = @" 发来了一段视频" ;
101+ [NIMMessageMaker setupMessagePushBody: message andSession: session];
87102 return message;
88103}
89- + (NIMMessage*)msgWithImage : (UIImage*)image
104+ + (NIMMessage*)msgWithImage : (UIImage*)image andeSession : (NIMSession *) session
90105{
91106 NIMImageObject *imageObject = [[NIMImageObject alloc ] initWithImage: image];
92107 NIMImageOption *option = [[NIMImageOption alloc ] init ];
93108 option.compressQuality = 0.7 ;
94109 imageObject.option = option;
95- return [NIMMessageMaker generateImageMessage: imageObject];
110+ return [NIMMessageMaker generateImageMessage: imageObject andeSession: session ];
96111}
97112
98- + (NIMMessage *)msgWithImagePath : (NSString *)path
113+ + (NIMMessage *)msgWithImagePath : (NSString *)path andeSession : (NIMSession *) session
99114{
100115 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc ] init ];
101116 [dateFormatter setDateFormat: @" yyyy-MM-dd HH:mm" ];
@@ -105,10 +120,10 @@ + (NIMMessage *)msgWithImagePath:(NSString*)path
105120 NIMMessage *message = [[NIMMessage alloc ] init ];
106121 message.messageObject = imageObject;
107122 message.apnsContent = @" 发来了一张图片" ;
108- return [NIMMessageMaker generateImageMessage: imageObject];
123+ return [NIMMessageMaker generateImageMessage: imageObject andeSession: session ];
109124}
110125
111- + (NIMMessage *)generateImageMessage : (NIMImageObject *)imageObject
126+ + (NIMMessage *)generateImageMessage : (NIMImageObject *)imageObject andeSession : (NIMSession *) session
112127{
113128 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc ] init ];
114129 [dateFormatter setDateFormat: @" yyyy-MM-dd HH:mm" ];
@@ -117,19 +132,33 @@ + (NIMMessage *)generateImageMessage:(NIMImageObject *)imageObject
117132 NIMMessage *message = [[NIMMessage alloc ] init ];
118133 message.messageObject = imageObject;
119134 message.apnsContent = @" 发来了一张图片" ;
135+ [NIMMessageMaker setupMessagePushBody: message andSession: session];
120136 return message;
121137}
122138
123139
124- + (NIMMessage*)msgWithLocation : (NIMKitLocationPoint *)locationPoint {
140+ + (NIMMessage*)msgWithLocation : (NIMKitLocationPoint *)locationPoint andeSession : (NIMSession *) session {
125141 NIMLocationObject *locationObject = [[NIMLocationObject alloc ] initWithLatitude: locationPoint.coordinate.latitude
126142 longitude: locationPoint.coordinate.longitude
127143 title: locationPoint.title];
128144 NIMMessage *message = [[NIMMessage alloc ] init ];
129145 message.messageObject = locationObject;
130146 message.apnsContent = @" 发来了一条位置信息" ;
147+ [NIMMessageMaker setupMessagePushBody: message andSession: session];
131148 return message;
132149}
133150
151+ + (void )setupMessagePushBody : (NIMMessage *)message andSession : (NIMSession *)session {
152+ NSMutableDictionary *payload = [NSMutableDictionary dictionary ];
153+ NSString *strSessionID = @" " ;
154+ if (session.sessionType == NIMSessionTypeP2P) {// 点对点
155+ strSessionID = [NIMSDK sharedSDK ].loginManager .currentAccount ;
156+ }else {
157+ strSessionID = [NSString stringWithFormat: @" %@ " ,session.sessionId];
158+ }
159+ NSString *strSessionType = [NSString stringWithFormat: @" %zd " ,session.sessionType];
160+ [payload setObject: @{@" sessionId" :strSessionID,@" sessionType" :strSessionType} forKey: @" sessionBody" ];
161+ message.apnsPayload = payload;
162+ }
134163
135164@end
0 commit comments