Commit 800634009700db0c21813ae9330a818a7920fddf
1 parent
f329a463
0.5.8 添加商家版 服务号
Showing
11 changed files
with
224 additions
and
60 deletions
CNLiveNewIMAManagerKit.podspec
CNLiveNewIMAManagerKit/Classes/Playform/IMAContactManager+Group.h
CNLiveNewIMAManagerKit/Classes/Playform/IMAConversationManager.m
| ... | ... | @@ -124,10 +124,19 @@ |
| 124 | 124 | |
| 125 | 125 | //如果是未知的 后台消息,直接 跳出循环ƒ |
| 126 | 126 | if ([conversation.getReceiver hasPrefix:@"sys"]) { |
| 127 | - if ([conversation.getReceiver isEqualToString:CNLifeHaoUserId] || [conversation.getReceiver isEqualToString:CNFirendMomentVideoUploadFinishUserId] || [conversation.getReceiver isEqualToString:CNWithdrawMessage] || [conversation.getReceiver isEqualToString:CNJoinFeatureGroupInvitation] || [conversation.getReceiver isEqualToString:CNWithNews] || [conversation.getReceiver isEqualToString:CNWithLive] || [conversation.getReceiver isEqualToString:CNWithVideo]|| [conversation.getReceiver isEqualToString:CNWithRepastPay]|| [conversation.getReceiver isEqualToString:CNWithReceipt] | |
| 128 | - || [conversation.getReceiver isEqualToString:CNWithRepastVerify]) | |
| 127 | + if ([conversation.getReceiver isEqualToString:CNLifeHaoUserId] | |
| 128 | + || [conversation.getReceiver isEqualToString:CNFirendMomentVideoUploadFinishUserId] | |
| 129 | + || [conversation.getReceiver isEqualToString:CNWithdrawMessage] | |
| 130 | + || [conversation.getReceiver isEqualToString:CNJoinFeatureGroupInvitation] | |
| 131 | + || [conversation.getReceiver isEqualToString:CNWithNews] | |
| 132 | + || [conversation.getReceiver isEqualToString:CNWithLive] | |
| 133 | + || [conversation.getReceiver isEqualToString:CNWithVideo] | |
| 134 | + || [conversation.getReceiver isEqualToString:CNWithRepastPay] | |
| 135 | + || [conversation.getReceiver isEqualToString:CNWithReceipt] | |
| 136 | + || [conversation.getReceiver isEqualToString:CNWithRepastVerify] | |
| 137 | + || [conversation.getReceiver isEqualToString:CNWithService]) | |
| 129 | 138 | { |
| 130 | -// NSLog(@"已知后台消息"); | |
| 139 | + NSLog(@"已知后台消息"); | |
| 131 | 140 | }else{ |
| 132 | 141 | NSLog(@"未知后台消息不添加到会话列表"); |
| 133 | 142 | continue; |
| ... | ... | @@ -757,7 +766,8 @@ |
| 757 | 766 | || [conv.getReceiver isEqualToString:CNWithVideo] |
| 758 | 767 | || [conv.getReceiver isEqualToString:CNWithRepastPay] |
| 759 | 768 | || [conv.getReceiver isEqualToString:CNWithReceipt] |
| 760 | - || [conv.getReceiver isEqualToString:CNWithRepastVerify]) | |
| 769 | + || [conv.getReceiver isEqualToString:CNWithRepastVerify] | |
| 770 | + || [conv.getReceiver isEqualToString:CNWithService]) | |
| 761 | 771 | { |
| 762 | 772 | NSLog(@"已知后台消息"); |
| 763 | 773 | } | ... | ... |
CNLiveNewIMAManagerKit/Classes/PublicHeader/IMAConstant.h
| ... | ... | @@ -105,7 +105,9 @@ static NSString *const CNWithNews = @"sys_news"; |
| 105 | 105 | //直播号 |
| 106 | 106 | static NSString *const CNWithLive = @"sys_live"; |
| 107 | 107 | //轻松一刻 |
| 108 | -static NSString *const CNWithVideo = @"sys_video"; | |
| 108 | +static NSString *const CNWithVideo = @"sys_video"; | |
| 109 | +//服务号 | |
| 110 | +static NSString *const CNWithService = @"sys_service"; | |
| 109 | 111 | |
| 110 | 112 | //商家版订单系统通知号 |
| 111 | 113 | static NSString *const CNWithRepastPay = @"sys_repastPay"; | ... | ... |
CNLiveNewIMAManagerKit/Classes/TIMCategory/IMAConversation+ShowAPIs.m
| ... | ... | @@ -40,6 +40,10 @@ |
| 40 | 40 | else if ([recerive isEqualToString:CNWithLive]) { |
| 41 | 41 | return @"IMAConversation_ReuseIndentifier_news"; |
| 42 | 42 | } |
| 43 | + else if ([recerive isEqualToString:CNWithService]) | |
| 44 | + { | |
| 45 | + return @"IMAConversation_ReuseIndentifier_service"; | |
| 46 | + } | |
| 43 | 47 | else if ([recerive isEqualToString:CNWithVideo]) { |
| 44 | 48 | return @"IMAConversation_ReuseIndentifier_video"; |
| 45 | 49 | } |
| ... | ... | @@ -98,6 +102,10 @@ |
| 98 | 102 | else if ([recerive isEqualToString:CNWithLive]) { |
| 99 | 103 | return @"直播号"; |
| 100 | 104 | } |
| 105 | + else if ([recerive isEqualToString:CNWithService]) | |
| 106 | + { | |
| 107 | + return @"服务号"; | |
| 108 | + } | |
| 101 | 109 | else if ([recerive isEqualToString:CNWithVideo]) |
| 102 | 110 | { |
| 103 | 111 | return @"轻松一刻"; | ... | ... |
CNLiveNewIMAManagerKit/Classes/TIMCategory/IMAMsg+UITableViewCell.h
| ... | ... | @@ -35,4 +35,15 @@ |
| 35 | 35 | |
| 36 | 36 | - (NSInteger)contentMaxWidth; |
| 37 | 37 | |
| 38 | +#pragma mark - 下面几个方法是企业端使用 | |
| 39 | +//获取消息的内容大小 | |
| 40 | +- (CGSize)getMsgContentSize:(CGFloat)width; | |
| 41 | + | |
| 42 | +/// 获取消息内容的高度 | |
| 43 | +- (CGFloat)getMsgContentHeight:(CGFloat)width; | |
| 44 | + | |
| 45 | +/// 获取消息内容文本 | |
| 46 | +- (NSMutableAttributedString *)getMsgAttributedText:(CGFloat)width; | |
| 47 | + | |
| 48 | + | |
| 38 | 49 | @end | ... | ... |
CNLiveNewIMAManagerKit/Classes/TIMCategory/IMAMsg+UITableViewCell.m
| ... | ... | @@ -293,9 +293,10 @@ static NSString *const kIMAMsgShowChatAttributedText = @"kIMAMsgShowChatAttribut |
| 293 | 293 | NSMutableAttributedString *string = objc_getAssociatedObject(self, (__bridge const void *)kIMAMsgShowChatAttributedText); |
| 294 | 294 | if (!string) |
| 295 | 295 | { |
| 296 | - NSAttributedString *ats = [self loadShowChatAttributedText]; | |
| 297 | - self.showChatAttributedText = ats; | |
| 298 | - return ats; | |
| 296 | +// NSAttributedString *ats = [self loadShowChatAttributedText]; | |
| 297 | +// self.showChatAttributedText = ats; | |
| 298 | + | |
| 299 | + return [[NSAttributedString alloc] initWithString:@""]; | |
| 299 | 300 | |
| 300 | 301 | } |
| 301 | 302 | if ([self isMineMsg]) { |
| ... | ... | @@ -307,31 +308,99 @@ static NSString *const kIMAMsgShowChatAttributedText = @"kIMAMsgShowChatAttribut |
| 307 | 308 | return string; |
| 308 | 309 | } |
| 309 | 310 | |
| 310 | -- (NSAttributedString *)loadShowChatAttributedText | |
| 311 | +//- (NSAttributedString *)loadShowChatAttributedText | |
| 312 | +//{ | |
| 313 | +// NSMutableAttributedString *ats = [[NSMutableAttributedString alloc] init]; | |
| 314 | +// ats.yy_font = UIFontCNMake(15);//[UIFont systemFontOfSize:15]; | |
| 315 | +// NSInteger loc = 0; | |
| 316 | +// for (int i = 0; i < self.msg.elemCount; i++) | |
| 317 | +// { | |
| 318 | +// TIMElem *e = [self.msg getElem:i]; | |
| 319 | +// NSArray *array = [e chatAttachmentOf:self]; | |
| 320 | +// for (NSAttributedString *ca in array) | |
| 321 | +// { | |
| 322 | +// [ats appendAttributedString:ca]; | |
| 323 | +// // 移动光标 | |
| 324 | +// loc += ca.length; | |
| 325 | +// } | |
| 326 | +// } | |
| 327 | +// | |
| 328 | +// NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; | |
| 329 | +// paragraphStyle.lineSpacing = 1; | |
| 330 | +// paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping; | |
| 331 | +// [ats addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, ats.length)]; | |
| 332 | +// [ats addAttribute:NSFontAttributeName value:[self textFont] range:NSMakeRange(0, ats.length)]; | |
| 333 | +// | |
| 334 | +// | |
| 335 | +// return ats; | |
| 336 | +//} | |
| 337 | + | |
| 338 | +/// 获取消息内容文本 | |
| 339 | +- (NSMutableAttributedString *)getMsgAttributedText:(CGFloat)width | |
| 311 | 340 | { |
| 312 | - NSMutableAttributedString *ats = [[NSMutableAttributedString alloc] init]; | |
| 313 | - ats.yy_font = UIFontCNMake(15);//[UIFont systemFontOfSize:15]; | |
| 314 | - NSInteger loc = 0; | |
| 315 | - for (int i = 0; i < self.msg.elemCount; i++) | |
| 316 | - { | |
| 317 | - TIMElem *e = [self.msg getElem:i]; | |
| 318 | - NSArray *array = [e chatAttachmentOf:self]; | |
| 319 | - for (NSAttributedString *ca in array) | |
| 341 | + if (self.showChatAttributedText) { | |
| 342 | + return self.showChatAttributedText; | |
| 343 | + } | |
| 344 | + if ([[self.msg getElem:0] isKindOfClass:[TIMCustomElem class]]) { | |
| 345 | + TIMCustomElem *elem = (TIMCustomElem *)[self.msg getElem:0]; | |
| 346 | + NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:elem.data options:NSJSONReadingMutableContainers error:nil]; | |
| 347 | + if ([dic[@"type"] integerValue] == 12001) { | |
| 348 | + NSDictionary *illegalData = dic[@"illegalData"]; | |
| 349 | + return [self attributeText:illegalData[@"content"] width:width]; | |
| 350 | + | |
| 351 | + } | |
| 352 | + else if ([dic[@"type"] integerValue] == 12002) | |
| 320 | 353 | { |
| 321 | - [ats appendAttributedString:ca]; | |
| 322 | - // 移动光标 | |
| 323 | - loc += ca.length; | |
| 354 | + NSDictionary *personageCerSuccessData = dic[@"personageCerSuccessData"]; | |
| 355 | + return [self attributeText:personageCerSuccessData[@"content"] width:width]; | |
| 356 | + | |
| 357 | + } | |
| 358 | + else if ([dic[@"type"] integerValue] == 12003) | |
| 359 | + { | |
| 360 | + NSDictionary *personageCerFailData = dic[@"personageCerFailData"]; | |
| 361 | + return [self attributeText:personageCerFailData[@"content"] width:width]; | |
| 362 | + | |
| 363 | + } | |
| 364 | + else if ([dic[@"type"] integerValue] == 12004) | |
| 365 | + { | |
| 366 | + NSDictionary *organizationCerSuccessData = dic[@"organizationCerSuccessData"]; | |
| 367 | + return [self attributeText:organizationCerSuccessData[@"content"] width:width]; | |
| 368 | + | |
| 369 | + } | |
| 370 | + else if ([dic[@"type"] integerValue] == 12005) | |
| 371 | + { | |
| 372 | + NSDictionary *organizationCerFailData = dic[@"organizationCerFailData"]; | |
| 373 | + return [self attributeText:organizationCerFailData[@"content"] width:width]; | |
| 324 | 374 | } |
| 325 | 375 | } |
| 376 | + | |
| 377 | + return [[NSMutableAttributedString alloc] initWithString:@""]; | |
| 378 | +} | |
| 326 | 379 | |
| 380 | +- (NSMutableAttributedString *)attributeText:(NSString *)content width:(CGFloat)width | |
| 381 | +{ | |
| 382 | + NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:content]; | |
| 383 | + | |
| 327 | 384 | NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; |
| 328 | - paragraphStyle.lineSpacing = 1; | |
| 329 | 385 | paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping; |
| 330 | - [ats addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, ats.length)]; | |
| 331 | - [ats addAttribute:NSFontAttributeName value:[self textFont] range:NSMakeRange(0, ats.length)]; | |
| 332 | - | |
| 386 | + paragraphStyle.lineSpacing = 5; //行高度 | |
| 387 | + NSMutableAttributedString *attributes = [[NSMutableAttributedString alloc] initWithAttributedString:attStr]; | |
| 388 | + [attributes addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:14] range:NSMakeRange(0, attributes.length)]; | |
| 389 | + | |
| 390 | + [attributes addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, attributes.length)]; | |
| 391 | + self.showChatAttributedText = attributes; | |
| 333 | 392 | |
| 334 | - return ats; | |
| 393 | + //获取高度 | |
| 394 | + CGSize attSize = [attributes boundingRectWithSize:CGSizeMake(width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading |NSStringDrawingUsesDeviceMetrics context:nil].size; | |
| 395 | + //注*要向上取整!!!!!!! | |
| 396 | + NSInteger minH = 16; //最小高度 | |
| 397 | + attSize.width = ceil(attSize.width); | |
| 398 | + attSize.height = ceil(attSize.height); | |
| 399 | + if (attSize.height < minH) { | |
| 400 | + attSize.height = minH; | |
| 401 | + } | |
| 402 | + self.showContentSizeInChat = attSize; | |
| 403 | + return attributes; | |
| 335 | 404 | } |
| 336 | 405 | |
| 337 | 406 | @end | ... | ... |
CNLiveNewIMAManagerKit/Classes/TIMCategory/TIMElem+ShowAPIs.m
| ... | ... | @@ -402,7 +402,7 @@ |
| 402 | 402 | } |
| 403 | 403 | else if (msg.type == EIMAMSG_OrderConfirm) |
| 404 | 404 | { |
| 405 | -#pragma mark DODO!!! 电商订单消息修改 | |
| 405 | + // DODO!!! 电商订单消息修改 | |
| 406 | 406 | return [NSClassFromString(@"CNOrderConfirmCell") class]; |
| 407 | 407 | // return [CNE_BusinessOrderConfirmCell class]; |
| 408 | 408 | } |
| ... | ... | @@ -412,7 +412,7 @@ |
| 412 | 412 | } |
| 413 | 413 | else if (msg.type == EIMAMSG_OrderStatus) |
| 414 | 414 | { |
| 415 | -#pragma mark DODO!!! 电商订单消息修改 | |
| 415 | + //DODO!!! 电商订单消息修改 | |
| 416 | 416 | return [NSClassFromString(@"CNOrderStatusTableViewCell") class]; |
| 417 | 417 | } |
| 418 | 418 | else if (msg.type == EIMAMSG_NewLiveVideo) |
| ... | ... | @@ -507,15 +507,6 @@ |
| 507 | 507 | }else if (msg.type == EIMAMSG_SendCurrentlocation){ |
| 508 | 508 | return [NSClassFromString(@"CNSendCurrentLocationCell") class]; |
| 509 | 509 | } |
| 510 | -// else if (msg.type == EIMAMSG_Sharelocation){ | |
| 511 | -// return [CNMessageShareLocationCell class]; | |
| 512 | -// }else if (msg.type == EIMAMSG_SendCurrentlocation){ | |
| 513 | -// return [CNSendCurrentLocationCell class]; | |
| 514 | -// }else if (msg.type == EIMAMSG_SharelocationEndTip) | |
| 515 | -// { | |
| 516 | -// return [CNShareLocationEndTipTableViewCell class]; | |
| 517 | -// } | |
| 518 | -#pragma mark - 音视频 | |
| 519 | 510 | else if (msg.type == EIMAMSG_OutRoom) |
| 520 | 511 | { |
| 521 | 512 | return [NSClassFromString(@"CNVideoOrAudioMssageCell") class]; |
| ... | ... | @@ -883,6 +874,45 @@ |
| 883 | 874 | return CGSizeMake(width, 160); |
| 884 | 875 | } |
| 885 | 876 | break; |
| 877 | + case EIMAMSG_Illegal: | |
| 878 | + { | |
| 879 | + NSDictionary *illegalData = packMsg.customMsgData[@"illegalData"]; | |
| 880 | + CGSize contentSize = [self sizeWithText:illegalData[@"content"] lineSpacing:5 width:width fontSize:14]; | |
| 881 | + | |
| 882 | + return CGSizeMake(contentSize.width, contentSize.height + 100); | |
| 883 | + } | |
| 884 | + break; | |
| 885 | + case EIMAMSG_PersonageCerSuccess: | |
| 886 | + { | |
| 887 | + NSDictionary *personageCerSuccessData = packMsg.customMsgData[@"personageCerSuccessData"]; | |
| 888 | + CGSize contentSize = [self sizeWithText:personageCerSuccessData[@"content"] lineSpacing:5 width:width fontSize:14]; | |
| 889 | + return CGSizeMake(contentSize.width, contentSize.height + 100); | |
| 890 | + } | |
| 891 | + break; | |
| 892 | + case EIMAMSG_PersonageCerFail: | |
| 893 | + { | |
| 894 | + NSDictionary *personageCerFailData = packMsg.customMsgData[@"personageCerFailData"]; | |
| 895 | + CGSize contentSize = [self sizeWithText:personageCerFailData[@"content"] lineSpacing:5 width:width fontSize:14]; | |
| 896 | + return CGSizeMake(contentSize.width, contentSize.height + 100); | |
| 897 | + } | |
| 898 | + break; | |
| 899 | + case EIMAMSG_OrganizationCerSuccess: | |
| 900 | + { | |
| 901 | + NSDictionary *organizationCerSuccessData = packMsg.customMsgData[@"organizationCerSuccessData"]; | |
| 902 | + | |
| 903 | + CGSize contentSize = [self sizeWithText:organizationCerSuccessData[@"content"] lineSpacing:5 width:width fontSize:14]; | |
| 904 | + return CGSizeMake(contentSize.width, contentSize.height + 100); | |
| 905 | + | |
| 906 | + } | |
| 907 | + break; | |
| 908 | + case EIMAMSG_OrganizationCerFail: | |
| 909 | + { | |
| 910 | + NSDictionary *organizationCerFailData = packMsg.customMsgData[@"organizationCerFailData"]; | |
| 911 | + | |
| 912 | + CGSize contentSize = [self sizeWithText:organizationCerFailData[@"content"] lineSpacing:5 width:width fontSize:14]; | |
| 913 | + return CGSizeMake(contentSize.width, contentSize.height + 100); | |
| 914 | + } | |
| 915 | + break; | |
| 886 | 916 | default: |
| 887 | 917 | break; |
| 888 | 918 | } |
| ... | ... | @@ -1170,7 +1200,7 @@ |
| 1170 | 1200 | |
| 1171 | 1201 | } |
| 1172 | 1202 | |
| 1173 | -//同意添加好友 | |
| 1203 | +/// 同意添加好友 | |
| 1174 | 1204 | - (CGFloat)agreeApplyCellHeight:(IMAMsg *)packMsg { |
| 1175 | 1205 | |
| 1176 | 1206 | TIMCustomElem *elem = (TIMCustomElem *)[packMsg.msg getElem:0]; |
| ... | ... | @@ -1181,6 +1211,33 @@ |
| 1181 | 1211 | return size.height+20; |
| 1182 | 1212 | |
| 1183 | 1213 | } |
| 1214 | + | |
| 1215 | +/// 获取一段文本高度 | |
| 1216 | +/// @param content 文本内容 | |
| 1217 | +/// @param lineSpacing 行间距 | |
| 1218 | +/// @param width 最大宽度 | |
| 1219 | +/// @param fontSize 字体大小 | |
| 1220 | +- (CGSize)sizeWithText:(NSString *)content lineSpacing:(CGFloat)lineSpacing width:(CGFloat)width fontSize:(CGFloat)fontSize | |
| 1221 | +{ | |
| 1222 | + NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:content]; | |
| 1223 | + NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; | |
| 1224 | + paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping; | |
| 1225 | + paragraphStyle.lineSpacing = lineSpacing; //行高度 | |
| 1226 | + NSMutableAttributedString *attributes = [[NSMutableAttributedString alloc] initWithAttributedString:attStr]; | |
| 1227 | + [attributes addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:fontSize] range:NSMakeRange(0, attributes.length)]; | |
| 1228 | + [attributes addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, attributes.length)]; | |
| 1229 | + | |
| 1230 | + //获取高度 | |
| 1231 | + CGSize attSize = [attributes boundingRectWithSize:CGSizeMake(width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading |NSStringDrawingUsesDeviceMetrics context:nil].size; | |
| 1232 | + //注*要向上取整!!!!!!! | |
| 1233 | + NSInteger minH = 16; //最小高度 | |
| 1234 | + attSize.width = ceil(attSize.width); | |
| 1235 | + attSize.height = ceil(attSize.height); | |
| 1236 | + if (attSize.height < minH) { | |
| 1237 | + attSize.height = minH; | |
| 1238 | + } | |
| 1239 | + return attSize; | |
| 1240 | +} | |
| 1184 | 1241 | @end |
| 1185 | 1242 | |
| 1186 | 1243 | ... | ... |
CNLiveNewIMAManagerKit/Classes/TIMModel/MSG/IMAMsg.h
| ... | ... | @@ -126,6 +126,7 @@ typedef NS_ENUM(NSInteger, IMAMSGType) { |
| 126 | 126 | EIMAMSG_OrederQrcodeReceived , //二维码收款 |
| 127 | 127 | EIMAMSG_OrederReminder , //推单 |
| 128 | 128 | EIMAMSG_NewOrderRemind , //新订单提醒 |
| 129 | + EIMAMSG_LiveRemind , //直播开播提醒 | |
| 129 | 130 | |
| 130 | 131 | #pragma mark 网家家企业端消息相关 |
| 131 | 132 | EIMAMSG_Illegal , //违规 |
| ... | ... | @@ -263,6 +264,7 @@ typedef NS_ENUM(NSUInteger, CustomMsgType) { |
| 263 | 264 | CustomMsgTypeApplyForRefund = 3111, //申请退款消息 |
| 264 | 265 | CustomMsgTypeReminder = 3222, //催单 |
| 265 | 266 | CustomMsgTypeNewOrderRemind = 3333, //新订单提醒 |
| 267 | + CustomMsgTypeLiveRemind = 3444, //直播开播提醒 | |
| 266 | 268 | #pragma mark 网家家企业端消息相关 |
| 267 | 269 | CustomMsgTypeIllegal = 12001, //违规 |
| 268 | 270 | CustomMsgTypePersonageCerSuccess = 12002, //个人认证成功 | ... | ... |
CNLiveNewIMAManagerKit/Classes/TIMModel/MSG/IMAMsg.m
| ... | ... | @@ -670,6 +670,11 @@ |
| 670 | 670 | else if ([dic[@"type"] integerValue] == CustomMsgTypeOrganizationCerFail) |
| 671 | 671 | { |
| 672 | 672 | type = EIMAMSG_OrganizationCerFail; |
| 673 | + | |
| 674 | + } | |
| 675 | + else if ([dic[@"type"] integerValue] == CustomMsgTypeLiveRemind) | |
| 676 | + { | |
| 677 | + type = EIMAMSG_LiveRemind; | |
| 673 | 678 | } |
| 674 | 679 | else { |
| 675 | 680 | type = EIMAMSG_Unknown; | ... | ... |
Example/CNLiveNewIMAManagerKit.xcodeproj/project.pbxproj
| ... | ... | @@ -207,8 +207,8 @@ |
| 207 | 207 | 6003F586195388D20070C39A /* Sources */, |
| 208 | 208 | 6003F587195388D20070C39A /* Frameworks */, |
| 209 | 209 | 6003F588195388D20070C39A /* Resources */, |
| 210 | - E8A9796D270F45C1CB475BB0 /* [CP] Embed Pods Frameworks */, | |
| 211 | - C2F33B874AB1DC32FED2F23A /* [CP] Copy Pods Resources */, | |
| 210 | + F49AE02C9BB581CC9494D1C5 /* [CP] Embed Pods Frameworks */, | |
| 211 | + 21F6CCC1BE5265F5469D4B89 /* [CP] Copy Pods Resources */, | |
| 212 | 212 | ); |
| 213 | 213 | buildRules = ( |
| 214 | 214 | ); |
| ... | ... | @@ -299,29 +299,25 @@ |
| 299 | 299 | /* End PBXResourcesBuildPhase section */ |
| 300 | 300 | |
| 301 | 301 | /* Begin PBXShellScriptBuildPhase section */ |
| 302 | - 82CB990D38CC44C1D57DFB45 /* [CP] Check Pods Manifest.lock */ = { | |
| 302 | + 21F6CCC1BE5265F5469D4B89 /* [CP] Copy Pods Resources */ = { | |
| 303 | 303 | isa = PBXShellScriptBuildPhase; |
| 304 | 304 | buildActionMask = 2147483647; |
| 305 | 305 | files = ( |
| 306 | 306 | ); |
| 307 | - inputFileListPaths = ( | |
| 308 | - ); | |
| 309 | 307 | inputPaths = ( |
| 310 | - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", | |
| 311 | - "${PODS_ROOT}/Manifest.lock", | |
| 312 | - ); | |
| 313 | - name = "[CP] Check Pods Manifest.lock"; | |
| 314 | - outputFileListPaths = ( | |
| 308 | + "${PODS_ROOT}/Target Support Files/Pods-CNLiveNewIMAManagerKit_Example/Pods-CNLiveNewIMAManagerKit_Example-resources.sh", | |
| 309 | + "${PODS_CONFIGURATION_BUILD_DIR}/CNLivePhotoBrowser/CNLivePhotoBrowser.bundle", | |
| 315 | 310 | ); |
| 311 | + name = "[CP] Copy Pods Resources"; | |
| 316 | 312 | outputPaths = ( |
| 317 | - "$(DERIVED_FILE_DIR)/Pods-CNLiveNewIMAManagerKit_Tests-checkManifestLockResult.txt", | |
| 313 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/CNLivePhotoBrowser.bundle", | |
| 318 | 314 | ); |
| 319 | 315 | runOnlyForDeploymentPostprocessing = 0; |
| 320 | 316 | shellPath = /bin/sh; |
| 321 | - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; | |
| 317 | + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CNLiveNewIMAManagerKit_Example/Pods-CNLiveNewIMAManagerKit_Example-resources.sh\"\n"; | |
| 322 | 318 | showEnvVarsInLog = 0; |
| 323 | 319 | }; |
| 324 | - 8906C4D754AD31B635D77AE4 /* [CP] Check Pods Manifest.lock */ = { | |
| 320 | + 82CB990D38CC44C1D57DFB45 /* [CP] Check Pods Manifest.lock */ = { | |
| 325 | 321 | isa = PBXShellScriptBuildPhase; |
| 326 | 322 | buildActionMask = 2147483647; |
| 327 | 323 | files = ( |
| ... | ... | @@ -336,32 +332,36 @@ |
| 336 | 332 | outputFileListPaths = ( |
| 337 | 333 | ); |
| 338 | 334 | outputPaths = ( |
| 339 | - "$(DERIVED_FILE_DIR)/Pods-CNLiveNewIMAManagerKit_Example-checkManifestLockResult.txt", | |
| 335 | + "$(DERIVED_FILE_DIR)/Pods-CNLiveNewIMAManagerKit_Tests-checkManifestLockResult.txt", | |
| 340 | 336 | ); |
| 341 | 337 | runOnlyForDeploymentPostprocessing = 0; |
| 342 | 338 | shellPath = /bin/sh; |
| 343 | 339 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; |
| 344 | 340 | showEnvVarsInLog = 0; |
| 345 | 341 | }; |
| 346 | - C2F33B874AB1DC32FED2F23A /* [CP] Copy Pods Resources */ = { | |
| 342 | + 8906C4D754AD31B635D77AE4 /* [CP] Check Pods Manifest.lock */ = { | |
| 347 | 343 | isa = PBXShellScriptBuildPhase; |
| 348 | 344 | buildActionMask = 2147483647; |
| 349 | 345 | files = ( |
| 350 | 346 | ); |
| 347 | + inputFileListPaths = ( | |
| 348 | + ); | |
| 351 | 349 | inputPaths = ( |
| 352 | - "${PODS_ROOT}/Target Support Files/Pods-CNLiveNewIMAManagerKit_Example/Pods-CNLiveNewIMAManagerKit_Example-resources.sh", | |
| 353 | - "${PODS_CONFIGURATION_BUILD_DIR}/CNLivePhotoBrowser/CNLivePhotoBrowser.bundle", | |
| 350 | + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", | |
| 351 | + "${PODS_ROOT}/Manifest.lock", | |
| 352 | + ); | |
| 353 | + name = "[CP] Check Pods Manifest.lock"; | |
| 354 | + outputFileListPaths = ( | |
| 354 | 355 | ); |
| 355 | - name = "[CP] Copy Pods Resources"; | |
| 356 | 356 | outputPaths = ( |
| 357 | - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/CNLivePhotoBrowser.bundle", | |
| 357 | + "$(DERIVED_FILE_DIR)/Pods-CNLiveNewIMAManagerKit_Example-checkManifestLockResult.txt", | |
| 358 | 358 | ); |
| 359 | 359 | runOnlyForDeploymentPostprocessing = 0; |
| 360 | 360 | shellPath = /bin/sh; |
| 361 | - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CNLiveNewIMAManagerKit_Example/Pods-CNLiveNewIMAManagerKit_Example-resources.sh\"\n"; | |
| 361 | + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; | |
| 362 | 362 | showEnvVarsInLog = 0; |
| 363 | 363 | }; |
| 364 | - E8A9796D270F45C1CB475BB0 /* [CP] Embed Pods Frameworks */ = { | |
| 364 | + F49AE02C9BB581CC9494D1C5 /* [CP] Embed Pods Frameworks */ = { | |
| 365 | 365 | isa = PBXShellScriptBuildPhase; |
| 366 | 366 | buildActionMask = 2147483647; |
| 367 | 367 | files = ( | ... | ... |