标签:
项目开发之系统适配问题
关于后台
在之前iOS 开发中,我们精彩遇到关于app适配问题,有屏幕适配,系统适配,但是由于苹果新设备(iphone 6/6p)技新术(sizeClass)的推出在屏幕适配上变的非常简单,而且之前关于app在系统适配上还是比较多的,可能是由于ios7的大改革,后面字啊iOS7盒iOS8上面的api并没有太大的差别,所以关于系统适配,我们并没有考虑太多。
但是,作为一个合格的开发者,不管是实际项目开发中,还是平时我们都要注意系统的视频,毕竟ios9又出来了,虽然常用api变化不是很大。
所以这里就关于iOS7/iOS8/iOS9在使用后台的时候整理了一段系统适配的代码。
1 // 判斷是否 iOS 8 2 3 if(isiOS(8.0)) { 4 5 // 获取info.plist文件信息 6 7 NSDictionary *dic = [[NSBundle mainBundle] infoDictionary]; 8 9 [dic enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { 10 11 // NSLog(@"%@---%@", key, obj); 12 13 }]; 14 15 // 获取前后台定位描述 16 17 NSString *alwaysStr = [dic valueForKey:@"NSLocationAlwaysUsageDescription"]; 18 19 // 获取前台定位描述 20 21 NSString *whenInUseStr = [dic valueForKey:@"NSLocationWhenInUseUsageDescription"]; 22 23 24 25 if ([alwaysStr length] > 0) 26 27 { 28 29 [_locationM requestAlwaysAuthorization]; // 永久授权 30 31 } 32 33 else if([whenInUseStr length] > 0) 34 35 { 36 37 [_locationM requestWhenInUseAuthorization]; //使用中授权 38 39 }else 40 41 { 42 43 NSLog(@"在iOS8.0之后定位,请在info.plist文件中配置NSLocationAlwaysUsageDescription 或者 NSLocationWhenInUseUsageDescription "); 44 45 } 46 47 // 判断iOS9.0 兼容iOS9.0前台授权模式下的后台获取位置(会出现蓝条) 48 49 if (isiOS(9.0)) { 50 51 // 获取后台模式数组 52 53 NSArray *backModes = [dic valueForKey:@"UIBackgroundModes"]; 54 55 // 判断后台模式中是否包含位置更新服务 56 57 if ([backModes containsObject:@"location"]) 58 59 { 60 61 _locationM.allowsBackgroundLocationUpdates = YES; 62 63 } 64 65 } 66 67 68 69 }
最后希望各位读者在平时开发中多多注意细节,这样你的app才能更加完美!
iOS 开发——版本适配OC篇&项目开发之系统适配问题(关于后台)
标签:
原文地址:http://www.cnblogs.com/iCocos/p/4837002.html