iOS 9 简介
本文介绍 iOS 9 为 Xamarin.iOS 开发人员提供的所有新增和修改的 API 和功能。
Apple 在 iOS 9 中添加了多个新的 API 和服务,并对现有功能进行了许多增强。
3D Touch
3D Touch 是 iOS 9 以及 iPhone 6s 和 iPhone 6s Plus 的新增功能,为 iOS 应用添加了压力敏感手势。 借助 3D Touch,iPhone 应用现在不仅能够判断用户是否在触摸设备屏幕,还可以感知用户施加的压力并对不同的压力级别做出响应。
3D Touch 为应用提供以下功能:
- 压力感应 - 应用现在可以测量用户触摸屏幕的力度并利用该信息。 例如,绘画应用可以根据用户触摸屏幕的力度来使线条变粗或变细。
- 轻瞄和突显 - 应用现在可以让用户与其数据交互,而无需离开当前上下文。 通过用力按屏幕,他们可以使用轻描来预览感兴趣的项(例如预览消息)。 然后再用力按压,以使用突显来展开该项。
- 快速操作 - 将快速操作想象为上下文菜单,当用户右键单击桌面应用中的项时,可以弹出这些菜单。 使用快速操作,可以从 iOS 设备上的主屏幕图标为应用中的功能添加常用、快速和易于访问的快捷方式。
有关详细信息,请参阅我们的 3D Touch 简介指南。
应用传输安全性
App 传输安全 (ATS) 是 iOS 9 的新增功能,可强制实现 Internet 资源(例如应用的后端服务器)与应用之间的安全连接。 ATS 可确保所有 Internet 通信都符合安全连接最佳做法,从而防止直接通过应用或其正在使用的库意外泄露敏感信息。
由于为 iOS 9 和 OS X 10.11 (El Capitan) 生成的应用中默认启用了 ATS,因此使用 NSUrlConnection、CFUrl 或 NSUrlSession 的所有连接都受 ATS 安全要求的约束。 如果连接不符合这些要求,它们将失败并出现异常。
有关 ATS 的详细信息,请参阅我们的 App 传输安全指南。
适用于 iPad 的多任务
在 iOS 9 中,Apple 添加了多任务处理支持,用于在特定 iPad 硬件上同时运行两个应用。 因此,Xamarin.iOS 应用不能再假定它们是在任何给定时间运行的唯一应用,或者它们有权访问设备的完整屏幕或资源。
iPad 多任务处理通过以下功能受到支持:
- 侧拉 - 允许用户在滑出面板(根据语言方向,位于屏幕的右侧或左侧)中临时运行第二个 iOS 应用,该面板覆盖当前运行的主应用大约 25% 的空间。 “侧拉”仅在 iPad Pro、iPad Air、iPad Air 2、iPad Mini 2、iPad Mini 3 或 iPad Mini 4 上可用。
- 分屏浏览 - 在受支持的 iPad 硬件(仅限 iPad Air 2、iPad Mini 4 和 iPad Pro)上,用户可以选择第二个应用,并在分屏模式下与当前正在运行的应用并行运行。 用户可以控制每个应用占用主屏幕的百分比。
- 画中画 - 对于播放视频内容的应用,现在可在可移动且可调整大小的窗口中播放视频,该窗口浮动在 iOS 设备上当前正在运行的其他应用上方。 用户可以完全控制该窗口的大小和位置。 画中画仅适用于 iPad Pro、iPad Air、iPad Air 2、iPad Mini 2、iPad Mini 3 或 iPad Mini 4。
要详细了解 iOS 9 的新多任务处理功能,请参阅我们的 iPad 多任务处理指南。
新的通讯录和通讯录 UI 框架
随着 iOS 9 的引入,Apple 发布了两个新的框架(通讯录和通讯录 UI),取代 iOS 8 和更早版本使用的现有地址簿和地址簿 UI 框架。
这些面向对象的新框架提供以下内容:
- 通讯录 - 为 Xamarin.iOS 提供对用户的联系人信息的访问权限。 由于大多数应用只需要只读访问权限,因此此框架已针对线程安全的只读访问进行了优化。
- 通讯录 UI - 提供用于在 iOS 设备上显示、编辑、选择和创建联系人的 Xamarin.iOS UI 元素。
有关详细信息,请参阅我们的通讯录和通讯录 UI 文档。
新的搜索 API
搜索功能在 iOS 9 中得到了扩展,为访问 Xamarin.iOS 应用中的信息提供了全新方式。 使用新的搜索 API,可通过聚焦和 Safari 搜索结果、接力以及 Siri 提醒和建议来搜索应用内容。 用户可以借此快速访问应用中的活动和信息。
此外,使用新的搜索 API 可更轻松地将搜索集成到应用中,而无需具备搜索实施经验。 因此,Apple 声称通常需要几个小时才能实现使用 App Search 进行 iOS 9 应用内容的普遍搜索。
有关详细信息,请参阅我们的搜索增强文档。
新叠放视图
叠放视图控件 (UIStackView) 利用自动布局和大小类的强大功能来管理动态响应 iOS 设备的方向和屏幕尺寸的子视图叠放(水平或垂直)。
通过使用叠放视图控件,用户界面布局所需的工作量大大减少。 附加到叠放视图的所有子视图的布局都根据开发者定义的属性(例如轴、分布、对齐和间距)自动管理。
有关详细信息,请参阅我们的叠放视图简介文档。
集合视图更改
在 iOS 9 中,集合视图 (UICollectionView) 现在通过添加新的默认手势识别器和几个新的支持方法,支持对开箱即用的项进行拖动重新排序。
使用这些新方法,可以轻松地在集合视图中实现拖动重新排序,并可以选择在重新排序过程的任何阶段自定义项目外观。
有关 iOS 9 集合视图更改的详细信息,请参阅我们的集合视图更改指南。
游戏增强
在 iOS 9 中,Apple 对游戏 API 进行了多项技术改进,使 Xamarin.iOS 应用更容易实现游戏图形和音频。 这包括通过高级框架简化开发,以及利用 iOS 设备 GPU 的强大功能通过低级增强来提高速度和图形能力。
其中包括 GameplayKit、ReplayKit、Model I/O、MetalKit 和 Metal Performance Shader,以及 Metal、SceneKit 和 SpriteKit 的新增强功能。
有关详细信息,请参阅我们的游戏增强文档。
HomeKit 框架更改
iOS 8 中引入的 HomeKit 框架提供了从 Xamarin.iOS 应用设置和控制各种支持 HomeKit 的配件(例如自动灯、门锁和车库门摇控开关)的功能。 HomeKit 配件不仅易于设置和配置,而且还可以通过 Siri 语音命令进行控制。
在 iOS 9 中,Apple 简化了设置,扩展了支持的配件类型,并提供了更多配件交互(例如通过 iCloud 远程控制配件)。
有关详细信息,请参阅 HomeKit 和 Apple HomeKit 文档简介。
接力框架更改
Apple 在 iOS 8 和 OS X Yosemite (10.10) 中引入了接力(也称为连续互通),它可让用户在其一台设备(iOS 或 Mac)上启动活动,并在其另一台设备(由用户的 iCloud 帐户标识)上继续执行相同的活动。
iOS 9 中对接力进行了扩展,还支持新增强的搜索功能。 有关详细信息,请参阅我们的搜索增强文档。 有关使用接力的详细信息,请参阅我们的接力简介文档。
新扩展点
在 iOS 8 中,Apple 引入了扩展,这是由操作系统在标准上下文中呈现的库,例如在通知中心内、在用户请求键盘或编辑照片时。
在 iOS 9 中,Apple 通过提供几个新的扩展接入点扩展了扩展支持,这些扩展接入点定义了使用策略,并提供了在给定区域内工作的 API,如下所示:
- 新音频单元扩展接入点 - 使用此扩展接入点可提供音频效果、乐器、声音生成器等,以便在其他音频单元主机应用(例如 GarageBand)中使用。 使用此扩展接入点,还可在 App Store 上销售音频单元(音频插件)。
- 新索引维护扩展接入点 - 使用此扩展接入点可支持应用数据的重新索引,而无需重启应用。
- 新网络扩展接入点(需要 Apple 提供的特殊权限):
- App Proxy Provider 扩展 - 使用此扩展接入点可实现自定义透明客户端网络代理。
- Filter Data Provider/Filter Control Provider 扩展 - 使用这些扩展接入点可在设备上实现动态网络内容过滤。
- Packet Tunnel Provider 扩展 - 使用此扩展接入点可实现自定义 VPN 隧道协议客户端。
- 新 Safari 扩展接入点:
- 内容阻止扩展 - 使用此扩展接入点可定义用户浏览网页时不会显示的阻止内容列表。
- 共享链接扩展 - 使用此扩展接入点可在 Safari 的共享链接中查看应用的内容。
有关详细信息,请参阅我们的扩展简介和 Apple 的 App 扩展编程指南文档。
钥匙串增强功能
在 iOS 9 中,Apple 增强了钥匙串,为安全隔区提供了新的加密密钥类型,并提供了更多项目保护选项,如下所示:
- 新的面容 ID 限制,可在指纹数据库被修改时使钥匙串项目失效。
- 新的限制,允许仅使用触控 ID 或密码创建访问控制列表条目。
- 新的身份验证上下文,允许在
SecItem
调用之外单独调用身份验证。 - 访问控制列表熵(使用应用程序密码选项),用于应用提供的钥匙串项目加密。
- 支持在安全隔区内生成和使用密钥(通过
kSecAttrTokenIDSecureEnclave
属性)。
有关详细信息,请参阅 Xamarin.iOS 中的触控 ID 和面容 ID 。
从右至左的语言支持
在 iOS 9 中,Apple 通过提供对从右至左的语言的全面支持,使呈现翻转的用户界面比以往任何时候都更加容易。 这包括:
- 标准 UIKit 控件根据 iOS 设备区域设置和语言设置自动从右至左翻转。
- UIView 类提供的属性允许定义给定视图从右至左翻转时的显示方式。
- 能够使用 UIImage 类的 FlipsForRightToLeftLayoutDirection 属性,以编程方式翻转图像。
有关详细信息,请参阅 Apple 的支持从右至左的语言文档。
其他框架更改
除了我们上面介绍的主要更改之外,Apple 还对 iOS 9 的多个现有框架进行了修改和改进,包括以下框架:
- AV 基础框架
- AVKit 框架
- CloudKit 框架
- 基础框架
- 接力框架
- HealthKit 框架
- HomeKit 框架
- 本地身份验证框架
- MapKit 框架
- PassKit 框架
- Safari 服务框架
- UIKit 框架
有关详细信息,请参阅我们的其他 iOS 9 框架更改文档。
已弃用的 API 和函数
Apple 已在 iOS 9 中弃用了以下 API 和函数:
- 地址簿和地址簿 UI - 这些 API 已被通讯录和通讯录 UI 框架取代。 有关详细信息,请参阅我们的通讯录和通讯录 UI 文档。
- CBCentralManager - 在 iOS 9 中删除了
CBCentralManager
类的RetrievePeripherals
和RetrieveConnectedPeripherals
方法。 调用这些方法将导致应用在配对配件或应用启动时崩溃。 - FetchAllChanges - iOS 9 中弃用并删除了
CKFetchRecordChangesOperation
类的FetchAllChanges
。 - 媒体播放器 - iOS 9 中弃用了媒体播放器框架。 改用 AVKit 或 AV 基础 API。
有关弃用的具体 API 的完整列表,请参阅 Apple 的 iOS 9.0 API 差异文档。