소스 검색

重构AppDelegate

liuzhenxing1118 1 년 전
부모
커밋
eb1e047575

+ 19 - 0
artimenring-iOS/Artimenring/AppDelegate+login.h

@@ -0,0 +1,19 @@
+//
+//  AppDelegate+login.h
+//  Overseas Watch
+//
+//  Created by 刘振兴 on 2023/11/28.
+//  Copyright © 2023 BaH Cy. All rights reserved.
+//
+
+#import "AppDelegate.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface AppDelegate (login)
+
++ (void)checkLogin;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 26 - 0
artimenring-iOS/Artimenring/AppDelegate+login.m

@@ -0,0 +1,26 @@
+//
+//  AppDelegate+login.m
+//  Overseas Watch
+//
+//  Created by 刘振兴 on 2023/11/28.
+//  Copyright © 2023 BaH Cy. All rights reserved.
+//
+
+#import "AppDelegate+login.h"
+
+@implementation AppDelegate (login)
+
++ (void)checkLogin {
+    NSDictionary* loginData = [UserDataHelper getLastLoginInfo];
+    LogInModel* loginModel = [LogInModel mj_objectWithKeyValues:loginData];
+    
+    if(loginData && loginModel && loginModel.userId.length > 0 && [UserDataHelper hasLogin]) {
+        [DataManager shared].loginModel = loginModel;
+        [[DataManager shared] showTabBarController];
+    } else {
+        [DataManager shared].loginModel = nil;
+        [[DataManager shared] showLoginViewController];
+    }
+}
+
+@end

+ 19 - 0
artimenring-iOS/Artimenring/AppDelegate+notification.h

@@ -0,0 +1,19 @@
+//
+//  AppDelegate+notification.h
+//  Overseas Watch
+//
+//  Created by 刘振兴 on 2023/11/28.
+//  Copyright © 2023 BaH Cy. All rights reserved.
+//
+
+#import "AppDelegate.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface AppDelegate (notification)
+
++ (void)initNotification:(UIApplication *)application;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 103 - 0
artimenring-iOS/Artimenring/AppDelegate+notification.m

@@ -0,0 +1,103 @@
+//
+//  AppDelegate+notification.m
+//  Overseas Watch
+//
+//  Created by 刘振兴 on 2023/11/28.
+//  Copyright © 2023 BaH Cy. All rights reserved.
+//
+
+#import "AppDelegate+notification.h"
+#import "PushModel.h"
+
+// iOS10注册APNs所需头文件
+#ifdef NSFoundationVersionNumber_iOS_9_x_Max
+#import <UserNotifications/UserNotifications.h>
+#endif
+
+@import Firebase;
+
+@interface AppDelegate()<UNUserNotificationCenterDelegate, FIRMessagingDelegate>
+@end
+
+@implementation AppDelegate (notification)
+
++ (void)initNotification:(UIApplication *)application {
+    [UNUserNotificationCenter currentNotificationCenter].delegate = self;
+    UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert |
+        UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
+    [[UNUserNotificationCenter currentNotificationCenter]
+        requestAuthorizationWithOptions:authOptions
+        completionHandler:^(BOOL granted, NSError * _Nullable error) {
+          // ...
+        }];
+
+    [application registerForRemoteNotifications];
+    
+    [FIRApp configure];
+    [FIRMessaging messaging].delegate = self;
+}
+
+- (void)applicationDidEnterBackground:(UIApplication *)application {
+    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
+}
+
+- (void)applicationWillEnterForeground:(UIApplication *)application {
+    [application setApplicationIconBadgeNumber:0];
+    [[UNUserNotificationCenter currentNotificationCenter] removeAllPendingNotificationRequests];
+}
+
+- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
+    // 注册APNS成功, 注册deviceToken
+    NSString *token = [NSString stringWithFormat:@"%@", deviceToken];
+    //[MiPushSDK bindDeviceToken:deviceToken];
+    
+    [FIRMessaging messaging].APNSToken = deviceToken;
+}
+
+- (void)messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken {
+    NSLog(@"FCM registration token: %@", fcmToken);
+    
+    // TODO: If necessary send token to application server.
+    // Note: This callback is fired at each app startup and whenever a new token is generated.
+    NSLog(@"didReceiveRegistrationToken fcmToken: %@", fcmToken);
+    if (fcmToken == nil || [fcmToken isEqualToString:@""])
+        return;
+    
+    [[NSUserDefaults standardUserDefaults] setObject:fcmToken forKey:@"FCM_TOKEN"];
+    [[NSUserDefaults standardUserDefaults] synchronize];
+    [[NSNotificationCenter defaultCenter] postNotificationName:@"onRefreshFCMToken" object:nil];
+}
+
+- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
+    NSLog(@"did Fail To Register For Remote Notifications With Error: %@", error);
+    // 注册APNS失败
+}
+
+- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
+    
+    [self recivePush:NO userInfo:userInfo];
+    
+    completionHandler(UIBackgroundFetchResultNewData);
+}
+
+- (void)recivePush:(BOOL)isFinishLaunching userInfo:(NSDictionary*)userInfo {
+    [PushModel recivePush:userInfo isFinishLaunching:isFinishLaunching];
+}
+
+- (void)userNotificationCenter:(UNUserNotificationCenter *)center
+       willPresentNotification:(UNNotification *)notification
+         withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler {
+    NSDictionary *userInfo = notification.request.content.userInfo;
+    [self recivePush:NO userInfo:userInfo];
+    completionHandler(UNNotificationPresentationOptionNone);
+}
+
+- (void)userNotificationCenter:(UNUserNotificationCenter *)center
+didReceiveNotificationResponse:(UNNotificationResponse *)response
+         withCompletionHandler:(void(^)(void))completionHandler {
+    NSDictionary *userInfo = response.notification.request.content.userInfo;
+    [self recivePush:NO userInfo:userInfo];
+    completionHandler();
+}
+
+@end

+ 4 - 1
artimenring-iOS/Artimenring/AppDelegate+sdk.h

@@ -13,8 +13,11 @@ NS_ASSUME_NONNULL_BEGIN
 @interface AppDelegate (sdk)
 
 + (void)initSdk:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
-
++ (void)initIQKeyboard;
++ (void)showAdvertising;
++ (void)monitorNetworking;
 + (void)create3DTouch;
+
 @end
 
 NS_ASSUME_NONNULL_END

+ 59 - 3
artimenring-iOS/Artimenring/AppDelegate+sdk.m

@@ -11,12 +11,14 @@
 #import <Fabric/Fabric.h>
 #import <Crashlytics/Crashlytics.h>
 
-#import "IQKeyboardManager.h"
+#import <FBSDKCoreKit/FBSDKCoreKit.h>
+#import <GoogleSignIn/GoogleSignIn.h>
 
 #import <UMMobClick/MobClick.h>
 
-#import <FBSDKCoreKit/FBSDKCoreKit.h>
-#import <GoogleSignIn/GoogleSignIn.h>
+#import "IQKeyboardManager.h"
+#import "IanAdsStartView.h"
+#import "WebViewViewController.h"
 
 @implementation AppDelegate (sdk)
 
@@ -37,6 +39,60 @@
     [Fabric with:@[[Crashlytics class]]];
 }
 
++ (void)initIQKeyboard {
+    //自动伸缩键盘
+    IQKeyboardManager *manager = [IQKeyboardManager sharedManager];
+    manager.enable = YES;
+    manager.shouldResignOnTouchOutside = YES;
+    manager.shouldToolbarUsesTextFieldTintColor = YES;
+    manager.enableAutoToolbar = NO;
+}
+
++ (void)showAdvertising {
+    //开屏广告
+    NSString *adsString = [[NSUserDefaults standardUserDefaults] objectForKey:@"Key_LaunchAds"];
+    //@"http://785j3g.com1.z0.glb.clouddn.com/d659db60-f.jpg";
+    if ([adsString isKindOfClass:[NSNull class]] || adsString == nil || [adsString isEqualToString:@""])
+        return;
+    
+    NSDictionary* adsDic = [EUtil parseString2Dictionary:adsString];
+    NSString* picUrl = adsDic[@"ImageUrl"];
+    if ([picUrl isKindOfClass:[NSNull class]] || picUrl != nil || [picUrl isEqualToString:@""])
+        return;
+    
+    IanAdsStartView *startView = [IanAdsStartView startAdsViewWithBgImageUrl:picUrl withClickImageAction:^{
+        NSString *title = adsDic[@"Title"];
+        NSString *url = adsDic[@"AdUrl"];
+
+        UIStoryboard *mainStoryBoard = [UIStoryboard storyboardWithName:@"Common" bundle:nil];
+        WebViewViewController *webVc = [mainStoryBoard instantiateViewControllerWithIdentifier:@"WebViewVC"];
+        webVc.title = title;
+        webVc.urlToOpen = url;
+        webVc.mIsShare = YES;
+        webVc.mIsOpenApp = YES;
+        [EUtil pushViewController:webVc animated:YES];
+    }];
+    [startView startAnimationTime:3 WithCompletionBlock:^(IanAdsStartView *startView){
+        NSLog(@"广告结束后,执行事件");
+    }];
+}
+
++ (void)monitorNetworking {
+    [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
+        switch (status) {
+            case AFNetworkReachabilityStatusUnknown://未知网络
+            case AFNetworkReachabilityStatusNotReachable://网络不可达
+                [[NSNotificationCenter defaultCenter] postNotificationName:@"MONITORS_NETWORKING_STATUS" object:@(0)];
+                break;
+            case AFNetworkReachabilityStatusReachableViaWWAN://GPRS网络
+            case AFNetworkReachabilityStatusReachableViaWiFi://wifi网络
+                [[NSNotificationCenter defaultCenter] postNotificationName:@"MONITORS_NETWORKING_STATUS" object:@(1)];
+                break;
+        }
+    }];
+    [[AFNetworkReachabilityManager sharedManager] startMonitoring];
+}
+
 + (void)create3DTouch {
     NSMutableArray *arrShortcutItem = (NSMutableArray *)[UIApplication sharedApplication].shortcutItems;
     if (arrShortcutItem.count <= 0) {

+ 18 - 231
artimenring-iOS/Artimenring/AppDelegate.m

@@ -8,257 +8,44 @@
 
 #import "AppDelegate.h"
 #import "AppDelegate+sdk.h"
-#import "DataManager.h"
-#import "UserDataHelper.h"
-#import "IanAdsStartView.h"
-#import "WebViewViewController.h"
-#import "PopupView.h"
-#import "PushModel.h"
+#import "AppDelegate+login.h"
+#import "AppDelegate+notification.h"
 
-#import "IQKeyboardManager.h"
+#import <FBSDKCoreKit/FBSDKCoreKit.h>
+#import <GoogleSignIn/GoogleSignIn.h>
 
-// iOS10注册APNs所需头文件
-#ifdef NSFoundationVersionNumber_iOS_9_x_Max
-#import <UserNotifications/UserNotifications.h>
-#endif
-
-@import Firebase;
-
-
-@interface AppDelegate ()<UNUserNotificationCenterDelegate, FIRMessagingDelegate>
-@end
 
 @implementation AppDelegate
 
-
 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-    
     //NSSetUncaughtExceptionHandler(uncaughtExceptionHandler);
     
-    [self monitorNetworking];
-    
-    //3DTouch
-    [AppDelegate create3DTouch];
-    
-    
-    [UNUserNotificationCenter currentNotificationCenter].delegate = self;
-    UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert |
-        UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
-    [[UNUserNotificationCenter currentNotificationCenter]
-        requestAuthorizationWithOptions:authOptions
-        completionHandler:^(BOOL granted, NSError * _Nullable error) {
-          // ...
-        }];
-
-    [application registerForRemoteNotifications];
-    
-    [FIRApp configure];
-    [FIRMessaging messaging].delegate = self;
-    
-    
-    //自动伸缩键盘
-    IQKeyboardManager *manager = [IQKeyboardManager sharedManager];
-    manager.enable = YES;
-    manager.shouldResignOnTouchOutside = YES;
-    manager.shouldToolbarUsesTextFieldTintColor = YES;
-    manager.enableAutoToolbar = NO;
-    
-    //开屏广告
-    NSString *adsString = [[NSUserDefaults standardUserDefaults] objectForKey:@"Key_LaunchAds"];
-    //@"http://785j3g.com1.z0.glb.clouddn.com/d659db60-f.jpg";
-    if (adsString != nil) {
-        NSDictionary* adsDic = [EUtil parseString2Dictionary:adsString];
-        NSString* picUrl = adsDic[@"ImageUrl"];
-
-        if (![picUrl isKindOfClass:[NSNull class]] && picUrl != nil && ![picUrl isEqualToString:@""]) {
-            IanAdsStartView *startView = [IanAdsStartView startAdsViewWithBgImageUrl:picUrl withClickImageAction:^{
-
-                NSString *title = adsDic[@"Title"];
-                NSString *url = adsDic[@"AdUrl"];
-
-                UIStoryboard *mainStoryBoard = [UIStoryboard storyboardWithName:@"Common" bundle:nil];
-                WebViewViewController *webVc = [mainStoryBoard instantiateViewControllerWithIdentifier:@"WebViewVC"];
-                webVc.title = title;
-                webVc.urlToOpen = url;
-                webVc.mIsShare = YES;
-                webVc.mIsOpenApp = YES;
-                [EUtil pushViewController:webVc animated:YES];
-            }];
-            [startView startAnimationTime:3 WithCompletionBlock:^(IanAdsStartView *startView){
-                NSLog(@"广告结束后,执行事件");
-            }];
-        }
-    }
-    
     [[UIApplication sharedApplication] delegate].window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
     [[UIApplication sharedApplication] delegate].window.backgroundColor = [UIColor whiteColor];
     [[[UIApplication sharedApplication] delegate].window makeKeyAndVisible];
     
-    NSDictionary* loginData = [UserDataHelper getLastLoginInfo];
-    LogInModel *loginModel = [LogInModel mj_objectWithKeyValues:loginData];
-    if(loginData && loginModel && loginModel.userId.length > 0 && [UserDataHelper hasLogin]) {
-        [DataManager shared].loginModel = loginModel;
-        [[DataManager shared] showTabBarController];
-    } else {
-        [DataManager shared].loginModel = nil;
-        [[DataManager shared] showLoginViewController];
-    }
-
-    
+    [AppDelegate initNotification:application];
+    [AppDelegate initSdk:application didFinishLaunchingWithOptions:launchOptions];
+    [AppDelegate monitorNetworking];
+    [AppDelegate initIQKeyboard];
+    [AppDelegate showAdvertising];
+    [AppDelegate create3DTouch];
+    [AppDelegate checkLogin];
     return YES;
 }
 
-- (void)applicationWillResignActive:(UIApplication *)application {
-    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
-    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
-}
-
-- (void)applicationDidEnterBackground:(UIApplication *)application
-{
-    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
-}
-
-- (void)applicationWillEnterForeground:(UIApplication *)application {
-    [application setApplicationIconBadgeNumber:0];
-    [[UNUserNotificationCenter currentNotificationCenter] removeAllPendingNotificationRequests];
-}
-
-- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
-    // 注册APNS成功, 注册deviceToken
-    NSString *token = [NSString stringWithFormat:@"%@", deviceToken];
-    //[MiPushSDK bindDeviceToken:deviceToken];
-    
-    [FIRMessaging messaging].APNSToken = deviceToken;
-}
-
-- (void)messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken {
-    NSLog(@"FCM registration token: %@", fcmToken);
-    
-    // TODO: If necessary send token to application server.
-    // Note: This callback is fired at each app startup and whenever a new token is generated.
-    NSLog(@"didReceiveRegistrationToken fcmToken: %@", fcmToken);
-    if (fcmToken == nil || [fcmToken isEqualToString:@""])
-        return;
-    
-    [[NSUserDefaults standardUserDefaults] setObject:fcmToken forKey:@"FCM_TOKEN"];
-    [[NSUserDefaults standardUserDefaults] synchronize];
-    [[NSNotificationCenter defaultCenter] postNotificationName:@"onRefreshFCMToken" object:nil];
-}
-
-- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
-    NSLog(@"did Fail To Register For Remote Notifications With Error: %@", error);
-    // 注册APNS失败
-}
-
-
-#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_7_1
-- (void)application:(UIApplication *)application didRegisterUserNotificationSettings: (UIUserNotificationSettings *)notificationSettings
-{
-    
-}
-
-//- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
-//{
-//    [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation];
-//    
-//    [[GIDSignIn sharedInstance] handleURL:url];
-//    
-//    return YES;
-//}
-//
-//- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *, id> *)options {
-//    return [[GIDSignIn sharedInstance] handleURL:url];
-//}
-
-- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forLocalNotification:(UILocalNotification *)notification
-  completionHandler:(void (^)())completionHandler {
-}
-
-// Called when your app has been activated by the user selecting an action from
-// a remote notification.
-// A nil action identifier indicates the default action.
-// You should call the completion handler as soon as you've finished handling
-// the action.
-- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo
-  completionHandler:(void (^)())completionHandler {
-    
-}
-#endif
-
-- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
-
-}
-
-- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
-    
-    [self recivePush:NO userInfo:userInfo];
-    
-    completionHandler(UIBackgroundFetchResultNewData);
-}
-
-- (void)recivePush:(BOOL)isFinishLaunching userInfo:(NSDictionary*)userInfo
-{
-    [PushModel recivePush:userInfo isFinishLaunching:isFinishLaunching];
+- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
+    [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation];
+    [[GIDSignIn sharedInstance] handleURL:url];
+    return YES;
 }
 
-- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
+- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *, id> *)options {
+    return [[GIDSignIn sharedInstance] handleURL:url];
 }
 
-
-- (void)applicationDidBecomeActive:(UIApplication *)application
-{
+- (void)applicationDidBecomeActive:(UIApplication *)application {
     [FBSDKAppEvents activateApp];
 }
 
-- (void)applicationWillTerminate:(UIApplication *)application {
-    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
-}
-
-// [START ios_10_message_handling]
-// Receive displayed notifications for iOS 10 devices.
-#if defined(__IPHONE_10_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0
-// Handle incoming notification messages while app is in the foreground.
-- (void)userNotificationCenter:(UNUserNotificationCenter *)center
-       willPresentNotification:(UNNotification *)notification
-         withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler {
-    NSDictionary *userInfo = notification.request.content.userInfo;
-    [self recivePush:NO userInfo:userInfo];
-    
-    // Change this to your preferred presentation option
-    completionHandler(UNNotificationPresentationOptionNone);
-}
-
-- (void)userNotificationCenter:(UNUserNotificationCenter *)center
-didReceiveNotificationResponse:(UNNotificationResponse *)response
-         withCompletionHandler:(void(^)(void))completionHandler {
-    NSDictionary *userInfo = response.notification.request.content.userInfo;
-    [self recivePush:NO userInfo:userInfo];
-    completionHandler();
-}
-
-#endif
-
-#pragma mark - ------------- 监测网络状态 -------------
-- (void)monitorNetworking
-{
-    [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
-        switch (status) {
-            case AFNetworkReachabilityStatusUnknown://未知网络
-            case AFNetworkReachabilityStatusNotReachable://网络不可达
-                [[NSNotificationCenter defaultCenter] postNotificationName:@"MONITORS_NETWORKING_STATUS" object:@(0)];
-                break;
-                
-            case AFNetworkReachabilityStatusReachableViaWWAN://GPRS网络
-            case AFNetworkReachabilityStatusReachableViaWiFi://wifi网络
-                [[NSNotificationCenter defaultCenter] postNotificationName:@"MONITORS_NETWORKING_STATUS" object:@(1)];
-                break;
-                
-            default:
-                break;
-        }
-    }];
-    
-    [[AFNetworkReachabilityManager sharedManager] startMonitoring];
-}
-
 @end

+ 12 - 0
artimenring-iOS/Overseas Watch.xcodeproj/project.pbxproj

@@ -327,6 +327,8 @@
 		E41B0DDE2B107BF200D54B95 /* DataManager+user.m in Sources */ = {isa = PBXBuildFile; fileRef = E41B0DDD2B107BF200D54B95 /* DataManager+user.m */; };
 		E43C72D92B0C7C3A0089E25B /* ZSActionButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E43C72D72B0C7C3A0089E25B /* ZSActionButton.m */; };
 		E45EFDAA2B15E5B7001BAB84 /* AppDelegate+sdk.m in Sources */ = {isa = PBXBuildFile; fileRef = E45EFDA92B15E5B7001BAB84 /* AppDelegate+sdk.m */; };
+		E45EFDB02B15EC3C001BAB84 /* AppDelegate+notification.m in Sources */ = {isa = PBXBuildFile; fileRef = E45EFDAF2B15EC3C001BAB84 /* AppDelegate+notification.m */; };
+		E45EFDB32B15EDA1001BAB84 /* AppDelegate+login.m in Sources */ = {isa = PBXBuildFile; fileRef = E45EFDB22B15EDA1001BAB84 /* AppDelegate+login.m */; };
 		E47504D22AF39796006D424A /* UUImageAvatarBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = E47504D12AF39796006D424A /* UUImageAvatarBrowser.m */; };
 		E47A722E2AFBA3F100656945 /* EUtil.mm in Sources */ = {isa = PBXBuildFile; fileRef = E47A722D2AFBA3F100656945 /* EUtil.mm */; };
 		E4B4844D2AE7CF0400A77208 /* UserDataHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = E4B4844C2AE7CF0400A77208 /* UserDataHelper.m */; };
@@ -1028,6 +1030,10 @@
 		E43C72D82B0C7C3A0089E25B /* ZSActionButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ZSActionButton.h; path = Chat/ZSActionButton.h; sourceTree = "<group>"; };
 		E45EFDA82B15E5B7001BAB84 /* AppDelegate+sdk.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "AppDelegate+sdk.h"; sourceTree = "<group>"; };
 		E45EFDA92B15E5B7001BAB84 /* AppDelegate+sdk.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "AppDelegate+sdk.m"; sourceTree = "<group>"; };
+		E45EFDAE2B15EC3C001BAB84 /* AppDelegate+notification.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "AppDelegate+notification.h"; sourceTree = "<group>"; };
+		E45EFDAF2B15EC3C001BAB84 /* AppDelegate+notification.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "AppDelegate+notification.m"; sourceTree = "<group>"; };
+		E45EFDB12B15EDA1001BAB84 /* AppDelegate+login.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "AppDelegate+login.h"; sourceTree = "<group>"; };
+		E45EFDB22B15EDA1001BAB84 /* AppDelegate+login.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "AppDelegate+login.m"; sourceTree = "<group>"; };
 		E47504D02AF39796006D424A /* UUImageAvatarBrowser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UUImageAvatarBrowser.h; sourceTree = "<group>"; };
 		E47504D12AF39796006D424A /* UUImageAvatarBrowser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UUImageAvatarBrowser.m; sourceTree = "<group>"; };
 		E47A722D2AFBA3F100656945 /* EUtil.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = EUtil.mm; sourceTree = "<group>"; };
@@ -1943,8 +1949,12 @@
 				2771E2E41B787E6600BC8C4B /* ARMacros.h */,
 				28159BC01A3FC06000A3E1A3 /* AppDelegate.h */,
 				2787D3C621A528B9003085F6 /* AppDelegate.m */,
+				E45EFDB12B15EDA1001BAB84 /* AppDelegate+login.h */,
+				E45EFDB22B15EDA1001BAB84 /* AppDelegate+login.m */,
 				E45EFDA82B15E5B7001BAB84 /* AppDelegate+sdk.h */,
 				E45EFDA92B15E5B7001BAB84 /* AppDelegate+sdk.m */,
+				E45EFDAE2B15EC3C001BAB84 /* AppDelegate+notification.h */,
+				E45EFDAF2B15EC3C001BAB84 /* AppDelegate+notification.m */,
 				2805F5481AE9013500617FB1 /* PushConfig.plist */,
 				28159BCB1A3FC06000A3E1A3 /* LaunchScreen.xib */,
 				28159BBC1A3FC06000A3E1A3 /* Supporting Files */,
@@ -2941,6 +2951,7 @@
 				272F224B1FC7BB7E0016FD5B /* TabbarViewController.m in Sources */,
 				271F9B841D198DE400CA98DC /* OnOffSettingViewController.m in Sources */,
 				272153A420D10D230002D52A /* PushModel.m in Sources */,
+				E45EFDB32B15EDA1001BAB84 /* AppDelegate+login.m in Sources */,
 				E4FE9B992AD9465100DEABCA /* RSKTouchView.m in Sources */,
 				2747E10E2064F834002F84E9 /* NSDictionary+crash.m in Sources */,
 				E4D46A462ADE2D980092AB29 /* BlackDoorManager.m in Sources */,
@@ -2990,6 +3001,7 @@
 				E4B4844D2AE7CF0400A77208 /* UserDataHelper.m in Sources */,
 				27D7A7572146733200FCDCF6 /* LoginViewController.m in Sources */,
 				E4FA8B8C2AF8C89900B984B9 /* ZSMoreBoard.m in Sources */,
+				E45EFDB02B15EC3C001BAB84 /* AppDelegate+notification.m in Sources */,
 				E4FE9B732AD9465100DEABCA /* MyCalendarItem.m in Sources */,
 				285380561AA2ED26006D7033 /* SelectHistoryDay.m in Sources */,
 				284F53781AB2CA3000F62CEA /* UITableView+EAddition.m in Sources */,