IMAPlatform+AppConfig.m 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. //
  2. // IMAPlatform+AppConfig.m
  3. // TIMChat
  4. //
  5. // Created by AlexiChen on 16/2/26.
  6. // Copyright © 2016年 AlexiChen. All rights reserved.
  7. //
  8. #import "IMAPlatform+AppConfig.h"
  9. @implementation IMAPlatform (AppConfig)
  10. // app 启动时配置
  11. - (void)configOnAppLaunch
  12. {
  13. // TODO:大部份在IMAPlatform创建的时候处理了,此处添加额外处理,用户自行添加
  14. }
  15. // app 进入后台时配置
  16. - (void)configOnAppEnterBackground
  17. {
  18. // 将相关的配置缓存至本地
  19. [[IMAPlatform sharedInstance] saveToLocal];
  20. NSUInteger unReadCount = [[IMAPlatform sharedInstance].conversationMgr unReadMessageCount];
  21. [UIApplication sharedApplication].applicationIconBadgeNumber = unReadCount;
  22. TIMBackgroundParam *param = [[TIMBackgroundParam alloc] init];
  23. [param setC2cUnread:(int)unReadCount];
  24. [[TIMManager sharedInstance] doBackground:param succ:^() {
  25. DebugLog(@"doBackgroud Succ");
  26. } fail:^(int code, NSString * err) {
  27. DebugLog(@"Fail: %d->%@", code, err);
  28. }];
  29. }
  30. // app 进前台时配置
  31. - (void)configOnAppEnterForeground
  32. {
  33. [UIApplication.sharedApplication.windows enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(UIWindow *w, NSUInteger idx, BOOL *stop) {
  34. if (!w.opaque && [NSStringFromClass(w.class) hasPrefix:@"UIText"]) {
  35. // The keyboard sometimes disables interaction. This brings it back to normal.
  36. BOOL wasHidden = w.hidden;
  37. w.hidden = YES;
  38. w.hidden = wasHidden;
  39. *stop = YES;
  40. }
  41. }];
  42. //清空通知栏消息
  43. [[UIApplication sharedApplication] setApplicationIconBadgeNumber: 1];
  44. [[UIApplication sharedApplication] cancelAllLocalNotifications];
  45. [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
  46. }
  47. // app become active
  48. - (void)configOnAppDidBecomeActive
  49. {
  50. [[TIMManager sharedInstance] doForeground:^{
  51. } fail:^(int code, NSString *msg) {
  52. }];
  53. }
  54. // app 注册APNS成功后
  55. - (void)configOnAppRegistAPNSWithDeviceToken:(NSData *)deviceToken
  56. {
  57. DebugLog(@"didRegisterForRemoteNotificationsWithDeviceToken:%ld", (unsigned long)deviceToken.length);
  58. NSString *token = [NSString stringWithFormat:@"%@", deviceToken];
  59. [[TIMManager sharedInstance] log:TIM_LOG_INFO tag:@"SetToken" msg:[NSString stringWithFormat:@"My Token is :%@", token]];
  60. TIMTokenParam *param = [[TIMTokenParam alloc] init];
  61. #if kAppStoreVersion
  62. // AppStore版本
  63. #if DEBUG
  64. param.busiId = 2383;
  65. #else
  66. param.busiId = 2382;
  67. #endif
  68. #else
  69. //企业证书id
  70. param.busiId = 4496;
  71. #endif
  72. [param setToken:deviceToken];
  73. // [[TIMManager sharedInstance] setToken:param];
  74. [[TIMManager sharedInstance] setToken:param succ:^{
  75. NSLog(ASLocalizedString(@"-----> 上传token成功 "));
  76. } fail:^(int code, NSString *msg) {
  77. NSLog(ASLocalizedString(@"-----> 上传token失败 "));
  78. }];
  79. }
  80. @end