AppDelegate.m 6.68 KB
Newer Older
曹云霄's avatar
曹云霄 committed
1 2 3 4 5 6 7 8 9 10
//
//  AppDelegate.m
//  Lighting
//
//  Created by 曹云霄 on 16/4/27.
//  Copyright © 2016年 上海勾芒科技有限公司. All rights reserved.
//

#import "AppDelegate.h"
#import "LoginViewController.h"
11
#import "DeviceDirectionManager.h"
12
#import <Bugly/Bugly.h>
曹云霄's avatar
曹云霄 committed
13 14 15 16 17 18 19 20 21
@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
曹云霄's avatar
曹云霄 committed
22
    
23 24
    //bug检测
    [Bugly startWithAppId:@"900033734"];
25 26
    //检测版本更新
    [self detectionNetwork];
曹云霄's avatar
曹云霄 committed
27 28
    [self SetIQKeyboardManager];
    [self RootViewcontroller];
29
    [self setUMShare];
曹云霄's avatar
曹云霄 committed
30 31
    return YES;
}
32

曹云霄's avatar
曹云霄 committed
33
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window
34 35 36 37
{
    //判断是否是横屏
    if ( [[DeviceDirectionManager instance] isHorizontal]) {
        return UIInterfaceOrientationMaskAll ;
曹云霄's avatar
曹云霄 committed
38
    } else{
39 40 41
       return UIInterfaceOrientationMaskLandscape;
    }
}
42

43 44 45 46 47 48 49 50 51
//分享回调
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    BOOL result = [UMSocialSnsService handleOpenURL:url];
    if (result == FALSE) {
        //调用其他SDK,例如支付宝SDK等
    }
    return result;
}
曹云霄's avatar
曹云霄 committed
52 53 54
#pragma mark -设置根视图
- (void)RootViewcontroller
{
曹云霄's avatar
曹云霄 committed
55
    UIStoryboard *story = [UIStoryboard storyboardWithName:@"StoryboardwithCYX" bundle:nil];
曹云霄's avatar
曹云霄 committed
56 57 58 59
    LoginViewController *login = [story instantiateViewControllerWithIdentifier:@"Login"];
    self.window.rootViewController = login;
}

60

61 62 63 64
#pragma mark -接收到内存警告
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
    [[SDImageCache sharedImageCache] clearDisk];
65
    [[SDImageCache sharedImageCache] setValue:nil forKey:@"memCache"];
66 67
}

曹云霄's avatar
曹云霄 committed
68 69 70 71 72

#pragma mark - 键盘
- (void)SetIQKeyboardManager
{
    IQKeyboardManager *manager = [IQKeyboardManager sharedManager];
73
    [[IQKeyboardManager sharedManager]setKeyboardDistanceFromTextField:0];
曹云霄's avatar
曹云霄 committed
74 75
    manager.enable = YES;
    manager.shouldResignOnTouchOutside = YES;
勾芒's avatar
勾芒 committed
76
    manager.enableAutoToolbar = NO;
曹云霄's avatar
曹云霄 committed
77 78
}

曹云霄's avatar
曹云霄 committed
79 80 81 82

#pragma mark -检测网络的可连接性
- (void)detectionNetwork
{
83
    self.Networkstatus = true;
曹云霄's avatar
曹云霄 committed
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
    [[AFNetworkReachabilityManager sharedManager] startMonitoring];
    [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
        
        switch (status) {
                
            case AFNetworkReachabilityStatusUnknown:
            case AFNetworkReachabilityStatusNotReachable:{
                
                NSLog(@"无网络");
                self.Networkstatus = false;
                break;
            }
            case AFNetworkReachabilityStatusReachableViaWiFi:{
                
                NSLog(@"WiFi网络");
                self.Networkstatus = true;
                break;
                
            }
            case AFNetworkReachabilityStatusReachableViaWWAN:{
                
                NSLog(@"流量网络");
                self.Networkstatus = true;
                break;
            }
            default:
                break;
        }
    }];
}

115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
/**
 * 比较版本号
 *
 * @param v1 第一个版本号
 * @param v2 第二个版本号
 *
 * @return 如果版本号相等,返回 0,
 *         如果第一个版本号低于第二个,返回 -1,否则返回 1.
 */
int compare_version(const char *v1, const char *v2)
{
    assert(v1);
    assert(v2);
    const char *p_v1 = v1;
    const char *p_v2 = v2;
    while (*p_v1 && *p_v2) {
        char buf_v1[32] = {0};
        char buf_v2[32] = {0};
        char *i_v1 = strchr(p_v1, '.');
        if (!i_v1) break;
        if (i_v1 != p_v1) {
            strncpy(buf_v1, p_v1, i_v1 - p_v1);
            p_v1 = i_v1;
        }
        else
            p_v1++;
        char *i_v2 = strchr(p_v2, '.');
        if (!i_v2) break;
        if (i_v2 != p_v2) {
            strncpy(buf_v2, p_v2, i_v2 - p_v2);
            p_v2 = i_v2;
        }
        else
            p_v2++;
        int order = atoi(buf_v1) - atoi(buf_v2);
        if (order != 0)
            return order < 0 ? -1 : 1;
    }
    double res = atof(p_v1) - atof(p_v2);
    if (res < 0) return -1;
    if (res > 0) return 1;
    return 0;
}


160 161 162 163 164 165 166 167 168
-(void)setUMShare
{
    // 友盟分享初始化
    [UMSocialData setAppKey:@"57425f2467e58e645f00210a"];
    
    // 设置微信AppId、appSecret,分享url
    [UMSocialWechatHandler setWXAppId:@"wxab385878d9441f23" appSecret:@"58b85af13973bdf597fa807208ac0dff " url:@"http://www.umeng.com/social"];
    
    // 设置微博的AppKey、appSecret,分享url
169
    [UMSocialSinaSSOHandler openNewSinaSSOWithAppKey:@"1111393286" secret:@"5d011c05122b5539ec9592372f944d3c" RedirectURL:@"http://sns.whalecloud.com/sina2/callback"];
170
}
171 172 173 174 175 176 177 178 179


#pragma mark -更新通知
- (void)updateVersion
{
    [[NSNotificationCenter defaultCenter] postNotificationName:UPLOADVERSION object:nil];
}


曹云霄's avatar
曹云霄 committed
180 181 182 183 184 185 186 187 188 189 190 191
- (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 {
    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
    // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
192
    [self updateVersion];
曹云霄's avatar
曹云霄 committed
193 194 195 196 197 198 199 200 201 202 203 204 205 206
}

- (void)applicationDidBecomeActive:(UIApplication *)application {
    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}

- (void)applicationWillTerminate:(UIApplication *)application {
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
    // Saves changes in the application's managed object context before the application terminates.
}



@end