zoukankan      html  css  js  c++  java
  • 第三十一篇、iOS 9版本适配

    1.网络适配(强制回退HTTP)

      为了强制增强数据访问安全, iOS9 默认会把 所有的http请求 所有从NSURLConnection 、 CFURL 、 NSURLSession发出的 HTTP 请求,都改为 HTTPS 请求:iOS9.x-SDK编译时,默认会让所有从NSURLConnection 、 CFURL 、 NSURLSession发出的 HTTP 请求统一采用TLS 1.2 协议。因为 AFNetworking 现在的版本底层使用了 NSURLConnection ,众多App将被影响(基于iOS8.x-SDK的App不受影响)。服务器因此需要更新,以解析相关数据。如不更新,可通过在 Info.plist 中声明,倒退回不安全的网络请求。而这一做法,官方文档称为ATS,全称为App Transport Security,是iOS9的一个新特性。

    2.后台定位

     // 1. 实例化定位管理器
    _locationManager = [[CLLocationManager alloc] init];
    // 2. 设置代理
    _locationManager.delegate = self;
    // 3. 定位精度
    [_locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
    // 4.请求用户权限:分为:①只在前台开启定位②在后台也可定位,
    //注意:建议只请求①和②中的一个,如果两个权限都需要,只请求?即可,
    //①②这样的顺序,将导致bug:第一次启动程序后,系统将只请求①的权限,②的权限系统不会请求,只会在下一次启动应用时请求?
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8) {
        //[_locationManager requestWhenInUseAuthorization];//?只在前台开启定位
        [_locationManager requestAlwaysAuthorization];//?在后台也可定位
    }
    // 5.iOS9新特性:将允许出现这种场景:同一app中多个location manager:一些只能在前台定位,另一些可在后台定位(并可随时禁止其后台定位)。
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9) {
        _locationManager.allowsBackgroundLocationUpdates = YES;
    }
    // 6. 更新用户位置
    [_locationManager startUpdatingLocation];

    3.企业级分发(如果不信任证书,应用不可以使用,注意:服务器上的Bundle id 要设置和项目中的一样,不然不可以下载)

    4.添加信任的白名单(不信任则第三方的分享不可以使用)

    5.字体间隙变大UI异常(在ios8显示完全,当时一到ios9中就显示不全)

    CGSize size = [title sizeWithAttributes:@{NSFontAttributeName: [UIFont systemFontOfSize:14.0f]}];
    CGSize adjustedSize = CGSizeMake(ceilf(size.width), ceilf(size.height));
  • 相关阅读:
    服装色彩进阶_新浪公开课_新浪教育_新浪网
    服装搭配_新浪公开课_新浪教育_新浪网
    北京服装学院公开课:民族服饰设计实践_全5集_网易公开课
    浙江理工大学公开课:设计与生活_全6集_网易公开课
    腾讯课堂-草图大师 Sketchup 初级到精通视频讲座
    案例:焦点图轮播特效
    分享:响应式布局
    案例:用JS实现放大镜特效
    案例:人人网评论功能
    mook_百度百科
  • 原文地址:https://www.cnblogs.com/HJQ2016/p/5884734.html
Copyright © 2011-2022 走看看