(0003) iOS 开发之App 适配iOS 10
iOS 10 给开发者带来的变化
顺便加一句:我是第一时间更新Xcode 8正式版的,一切正常,注释快捷键也没有网上说的问题。运行速度更快了,不容易崩溃了!
App 做了哪些兼容:
1.UI 兼容,没想到好的方法,一处一处改了。不过再保留思考。
2.权限兼容。info.plist 中添加 (以下仅列取使用到的:)
相机权限: Privacy - Camera Usage Description 是否允许此App使用你的相机?
相册权限: Privacy - Photo Library Usage Description 是否允许此App访问你的媒体资料库?
通讯录权限: Privacy - Contacts Usage Description 是否允许此App访问你的通讯录?
日历权限:Privacy - Calendars Usage Description 是否允许此App使用日历?
定位权限:Privacy - Location When In Use Usage Description 我们需要通过您的地理位置信息获取您周边的相关数据
3.后台模式
或者在Xcode里选中当前的target
,选择Capabilities
,找到Background Modes
,打开它,在里面选择对应权限.
我的app里只用到RemoteNotification ,打勾即可!
4. UIApplication对象中openUrl被废iOS 做了兼容
-iOS 10 干掉了所有系统设置的 URL Scheme,这意味着你再也不可能直接跳转到系统设置页面(比如 WiFi、蜂窝数据、定位等)。
在iOS 10.0以前,我们要想使用应用程序去打开一个网页或者进行跳转,直接使用[[UIApplication sharedApplication] openURL 方法。
在iOS 10全新的推出了[UIApplication sharedApplication] openURL:nil options:nil completionHandler:^(BOOL success);有一个成功的回调block 可以进行监视。暂时不知道怎么用!
根据系统版本号<10.0的正常跳转。否则提示用户自己去设置里设置即可。
-对于app用到的其他(例如:相机,定位,通讯录等)的跳转设置开关。直接使用:
+ (void)openSettingsURLString
{
NSURL *url = [NSURLURLWithString:UIApplicationOpenSettingsURLString];
if([[UIApplicationsharedApplication]canOpenURL:url]) {
[[UIApplicationsharedApplication]openURL:url];
}
}
5. User Notifications 用户通知
iOS 10 中以前杂乱的和通知相关的 API 都被统一了,现在开发者可以使用独立的 UserNotifications.framework 来集中管理和使用 iOS 系统中通知的功能。在 iOS 10 中,开发者的服务器有机会在本地或者远程通知发送给用户之前再进行修改。在此基础上,Apple 还增加了撤回单条通知,更新已展示通知,中途修改通知内容,在通知中展示图片视频,自定义通知 UI 等一系列新功能,非常强大。
6. 屏蔽杂乱无章的log
更新Xcode8之后,新建立工程,都会打印一堆莫名其妙看不懂的Log.
屏蔽的方法如下:Xcode8里边 Edit Scheme-> Run -> Arguments, 在Environment Variables里边添加OS_ACTIVITY_MODE = Disable
真机调试时,控制台有没有打印,又把OS_ACTIVITY_MODE 前面的对勾去掉。运行真机测试,控制台打印出来了!哈哈哈,,,
7.WWDC 15 提出的 ATS (App Transport Security)是 Apple在推进网络通讯安全的一个重要方式。在 iOS 9和 OS X 10.11中,默认情况下非 HTTPS的网络访问是被禁止的。当然,因为这样的推进影响面非常广,作为缓冲,我们可以在 Info.plist中添加NSAppTransportSecurity字典并且将NSAllowsArbitraryLoads设置为YES来禁用 ATS。不过,WWDC 16中,Apple表示将继续在 iOS 10和 macOS 10.12里收紧对普通 HTTP的访问限制。从 2017年 1月 1日起,所有的新提交 app默认是不允许使用NSAllowsArbitraryLoads来绕过 ATS限制的,也就是说,我们最好保证 app的所有网络请求都是 HTTPS加密的,否则可能会在应用审核时遇到麻烦。
总结一下就是,对于 API 请求,基本上是必须使用 HTTPS的;我们的服务器已经是HTTPS了。这里也暂不改变。
8.iOS 10之前没添加白名单,分享正常,iOS 10后分享遇到问题:
报:-22005 之类的错误。
解决办法:添加白名单。
当你的应用使用 QQ/QQ空间/支付宝/微信SDK
的相关能力(分享、收藏、支付、登录等)时,
需要在“Info.plist”里增加如下代码:(根据自己的平台需要添加:)
<key>LSApplicationQueriesSchemes</key><array><!-- 微信 URL Scheme 白名单--><string>wechat</string><string>weixin</string><!-- 新浪微博 URL Scheme 白名单--><string>sinaweibohd</string><string>sinaweibo</string><string>sinaweibosso</string><string>weibosdk</string><string>weibosdk2.5</string><!-- QQ、Qzone URL Scheme 白名单--><string>mqqapi</string><string>mqq</string><string>mqqOpensdkSSoLogin</string><string>mqqconnect</string><string>mqqopensdkdataline</string><string>mqqopensdkgrouptribeshare</string><string>mqqopensdkfriend</string><string>mqqopensdkapi</string><string>mqqopensdkapiV2</string><string>mqqopensdkapiV3</string><string>mqzoneopensdk</string><string>wtloginmqq</string><string>wtloginmqq2</string><string>mqqwpa</string><string>mqzone</string><string>mqzonev2</string><string>mqzoneshare</string><string>wtloginqzone</string><string>mqzonewx</string><string>mqzoneopensdkapiV2</string><string>mqzoneopensdkapi19</string><string>mqzoneopensdkapi</string><string>mqzoneopensdk</string><!-- 支付宝 URL Scheme 白名单--><string>alipay</string><string>alipayshare</string></array>
(0003) iOS 开发之App 适配iOS 10相关推荐
- 「学习笔记」移动Web开发之rem适配布局10
「学习笔记」移动Web开发之rem适配布局10 一.rem单位 1.1 rem 单位 二.媒体查询 2.1 什么是媒体查询 2.2 语法规范 2.2.1 mediatype 查询类型 2.2.2 关键 ...
- (0106)iOS开发之iOS13 适配
UIWebview 将被废止 UITextField 的私有属性 _placeholderLabel [self.textField setValue:self.placeholderColor fo ...
- IOS开发之App之间的拉起和跳转
我们平时在浏览HTML5页面的时候,经常会遇到跳转到微信.淘宝.京东等App页面,如下图所示: 那么IOS是如何实现App之间的跳转呢?今天就来学习一下. URL Scheme: IOS在系统层面为我 ...
- iOS开发之APP内部切换语言
2019独角兽企业重金招聘Python工程师标准>>> 前言 iOS开发中,随着APP越来越完善,很多APP都做了国际化,也实现了APP内部切换语言. 原理 国际化都会走到NSBun ...
- iOS开发之 app版本升级流程
原文链接:http://www.cnblogs.com/LGLblog/p/5548823.html 版本号的格式:v<主版本号>.<副版本号>.<发布号> 版本号 ...
- ios开发之app内启动用户评价
原文链接 http://blog.csdn.net/yangxt/article/details/8196914 恰当的指引用户去给app评分是获得用户反馈的一种不错的途径. "通过cu ...
- (0057)iOS开发之Xcode9进行iOS设备无线调试
转载:使用Xcode进行iOS设备无线调试 PS:这是WWDC2017的新功能,iOS11以上,Xcode9这是刚性要求.这个功能不好找,就记下来了 手机连接上Xcode,打开Xcode菜单:Wind ...
- iOS开发之#iPhone6与iPhone6Plus适配#Xcode6.0/Xcode6.1上传应用过程中一些变动以及#解决方案#
iOS开发之#iPhone6与iPhone6Plus适配#Xcode6.0/Xcode6.1上传应用过程中一些变动以及#解决方案# 参考文章: (1)iOS开发之#iPhone6与iPhone6Plu ...
- iOS开发之Xcode常用调试技巧总结
转载自:iOS开发之Xcode常用调试技巧总结 最近在面试,面试过程中问到了一些Xcode常用的调试技巧问题.平常开发过程中用的还挺顺手的,但你要突然让我说,确实一脸懵逼.Debug的技巧很多,比如最 ...
最新文章
- 抛弃P值,选择更直观的A/B测试!
- python时间序列因果检验_Python Statsmodels的时间序列Ljung_Box检验
- 《JavaScript凌厉开发 Ext详解与实践》的目录
- java百度云文件上传_关于如何在自己项目集成百度云BCE文件上传STS方案
- 如何选择python书籍_关于 Python 的经典入门书籍有哪些?
- python精确运算_Python:执行精确的浮点数运算
- Callback Functions Tutorial
- 专供PNG免抠设计素材好地方,做设计到搜图114
- VS2015的下载地址和安装教程
- RuoYi-Vue前后端分离
- 华为鸿蒙os logo,华为鸿蒙OS Logo揭秘:Powered by HarmonyOS
- Ubuntu 下安装Skype聊天工具
- android 渠道排名,八大安卓渠道6月数据报告总汇
- 怎么识别伪装IP的网络攻击
- Upgraded Edition
- 数据分析-kaggle泰坦尼克号生存率分析
- 【智能优化算法】改进的侏儒猫鼬优化算法(IDMO)附matlab代码
- 计算机辅助技术英语,电子计算机辅助技术(CAD)
- 数据结构:八大数据结构分类及图解
- Tensorflow学习之tf.keras(一) tf.keras.layers.BatchNormalization