iOS 9 简介

本文介绍 iOS 9 为 Xamarin.iOS 开发人员提供的所有新增和修改的 API 和功能。

The iOS 9 logo

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,因此使用 NSUrlConnectionCFUrlNSUrlSession 的所有连接都受 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 简介HomeKitIntro iOS 示例应用和 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 类的 RetrievePeripheralsRetrieveConnectedPeripherals 方法。 调用这些方法将导致应用在配对配件或应用启动时崩溃。
  • FetchAllChanges - iOS 9 中弃用并删除了 CKFetchRecordChangesOperation 类的 FetchAllChanges
  • 媒体播放器 - iOS 9 中弃用了媒体播放器框架。 改用 AVKit 或 AV 基础 API。

有关弃用的具体 API 的完整列表,请参阅 Apple 的 iOS 9.0 API 差异文档。

iOS 9 示例应用

我们提供了一些特定于 iOS 9 的示例帮助你开始使用:

另请查看这些示例的 iOS 部分(配套的 Mac OS X 版本即将推出!):