RQAppDelegate.m 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. //
  2. // RQAppDelegate.m
  3. // jiaPei
  4. //
  5. // Created by 张嵘 on 2020/4/8.
  6. // Copyright © 2020 JCZ. All rights reserved.
  7. //
  8. #import "RQAppDelegate.h"
  9. #import "RQAppEventModuleManager.h"
  10. @implementation RQAppDelegate
  11. + (void)load {
  12. [[RQAppEventModuleManager sharedInstance] registedAllModules];
  13. }
  14. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  15. [[RQAppEventModuleManager sharedInstance] handleApplicationEvent:@selector(application:didFinishLaunchingWithOptions:)
  16. Complete:^(id _Nonnull module, SEL _Nonnull sel) {
  17. #pragma clang diagnostic push
  18. #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
  19. [module performSelector:sel
  20. withObject:application
  21. withObject:launchOptions];
  22. #pragma clang diagnostic pop
  23. }];
  24. return YES;
  25. }
  26. - (void)applicationDidEnterBackground:(UIApplication *)application {
  27. [[RQAppEventModuleManager sharedInstance] handleApplicationEvent:@selector(applicationDidEnterBackground:)
  28. Complete:^(id _Nonnull module, SEL _Nonnull sel) {
  29. #pragma clang diagnostic push
  30. #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
  31. [module performSelector:sel
  32. withObject:application];
  33. #pragma clang diagnostic pop
  34. }];
  35. }
  36. - (void)applicationWillEnterForeground:(UIApplication *)application {
  37. [[RQAppEventModuleManager sharedInstance] handleApplicationEvent:@selector(applicationWillEnterForeground:)
  38. Complete:^(id _Nonnull module, SEL _Nonnull sel) {
  39. #pragma clang diagnostic push
  40. #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
  41. [module performSelector:sel withObject:application];
  42. #pragma clang diagnostic pop
  43. }];
  44. }
  45. - (void)applicationWillTerminate:(UIApplication *)application {
  46. [[RQAppEventModuleManager sharedInstance] handleApplicationEvent:@selector(applicationWillTerminate:)
  47. Complete:^(id _Nonnull module, SEL _Nonnull sel) {
  48. #pragma clang diagnostic push
  49. #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
  50. [module performSelector:sel withObject:application];
  51. #pragma clang diagnostic pop
  52. }];
  53. }
  54. - (void)applicationWillResignActive:(UIApplication *)application {
  55. [[RQAppEventModuleManager sharedInstance] handleApplicationEvent:@selector(applicationWillResignActive:)
  56. Complete:^(id _Nonnull module, SEL _Nonnull sel) {
  57. #pragma clang diagnostic push
  58. #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
  59. [module performSelector:sel withObject:application];
  60. #pragma clang diagnostic pop
  61. }];
  62. }
  63. - (void)applicationDidBecomeActive:(UIApplication *)application {
  64. [[RQAppEventModuleManager sharedInstance] handleApplicationEvent:@selector(applicationDidBecomeActive:)
  65. Complete:^(id _Nonnull module, SEL _Nonnull sel) {
  66. #pragma clang diagnostic push
  67. #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
  68. [module performSelector:sel withObject:application];
  69. #pragma clang diagnostic pop
  70. }];
  71. }
  72. - (void)application:(UIApplication *)application handleEventsForBackgroundURLSession:(NSString *)identifier completionHandler:(void (^)(void))completionHandler {
  73. [[RQAppEventModuleManager sharedInstance] handleApplicationEvent:@selector(application:handleEventsForBackgroundURLSession:completionHandler:)
  74. Complete:^(id _Nonnull module, SEL _Nonnull sel) {
  75. #pragma clang diagnostic push
  76. #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
  77. [module performSelector:sel
  78. withObject:identifier withObject:completionHandler];
  79. #pragma clang diagnostic pop
  80. }];
  81. }
  82. - (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings {
  83. [[RQAppEventModuleManager sharedInstance] handleApplicationEvent:@selector(application:didRegisterUserNotificationSettings:)
  84. Complete:^(id _Nonnull module, SEL _Nonnull sel) {
  85. #pragma clang diagnostic push
  86. #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
  87. [module performSelector:sel
  88. withObject:application withObject:notificationSettings];
  89. #pragma clang diagnostic pop
  90. }];
  91. }
  92. - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
  93. [[RQAppEventModuleManager sharedInstance] handleApplicationEvent:@selector(application:didRegisterForRemoteNotificationsWithDeviceToken:)
  94. Complete:^(id _Nonnull module, SEL _Nonnull sel) {
  95. #pragma clang diagnostic push
  96. #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
  97. [module performSelector:sel
  98. withObject:application withObject:deviceToken];
  99. #pragma clang diagnostic pop
  100. }];
  101. }
  102. - (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
  103. [[RQAppEventModuleManager sharedInstance] handleApplicationEvent:@selector(application:performFetchWithCompletionHandler:)
  104. Complete:^(id _Nonnull module, SEL _Nonnull sel) {
  105. #pragma clang diagnostic push
  106. #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
  107. [module performSelector:sel
  108. withObject:application withObject:completionHandler];
  109. #pragma clang diagnostic pop
  110. }];
  111. }
  112. - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
  113. [[RQAppEventModuleManager sharedInstance] handleApplicationEvent:@selector(application:didReceiveRemoteNotification:fetchCompletionHandler:)
  114. Complete:^(id _Nonnull module, SEL _Nonnull sel) {
  115. #pragma clang diagnostic push
  116. #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
  117. [module performSelector:sel
  118. withObject:userInfo withObject:completionHandler];
  119. #pragma clang diagnostic pop
  120. }];
  121. }
  122. @end