iOS 10 简介

通过新的 iOS 10 SDK,Apple 包含了新的 API 和服务,使开发人员能够创建新类别的应用和功能。 iOS 应用现在可以扩展消息、Siri、电话和地图应用,为最终用户提供以前无法提供的丰富、引人入胜的功能。

有关 iOS 10 的详细信息,请参阅 Apple 的 iOS + 应用文档。

iOS 10 中的新增功能

Apple 在 iOS 10 中添加了多个新的 API 和服务,并对现有功能进行了许多增强,包括:

适应 True Tone Display

Apple 的 True Tone Display 技术使用 iOS 设备中的环境光传感器来动态调整显示屏的颜色和强度,以匹配当前的照明条件。 iOS 10 提供了新的 UIWhitePointAdaptivityStyle 键,可以将其添加到应用的 Info.plist 文件中,并控制 True Tone 如何应用标准颜色偏移。

可以选择以下值:

  • UIWhitePointAdaptivityStyleStandard默认 - 使用标准白点自适应性。
  • UIWhitePointAdaptivityStyleReading - 用于以阅读为中心的应用。
  • UIWhitePointAdaptivityStyleGame - 用于以游戏为中心的应用。
  • UIWhitePointAdaptivityStyleVideo - 用于以视频为中心的应用。
  • UIWhitePointAdaptivityStylePhoto - 用于以摄影为中心的应用,其中颜色保真度比环境白点调整更重要。

应用扩展

Apple 在 iOS 10 中提供了几个新的应用扩展点:

  • 呼叫目录
  • 意向和意向 UI
  • 消息
  • 通知内容
  • Notification Services
  • 贴纸包

此外,第三方键盘应用扩展还具有以下增强功能:

  • UITextDocumentProxy 类的新 DocumentInputMode 属性可以确定文档的输入语言,并允许键盘扩展与该语言保持一致。
  • 新的 HandleInputModeList 方法可让键盘扩展显示系统的键盘选取器菜单,以响应点击的 Globe 键。

有关详细信息,请参阅扩展简介消息应用集成主动建议简介SiriKit 简介用户通知简介和 Apple 的应用扩展编程指南

应用搜索增强功能

iOS 10 中的 Core Spotlight 为应用搜索提供了多项增强功能,例如:

  • 众包深层链接流行度(具有差异隐私)- 提供一种在搜索结果中宣传深层链接应用内容的方法
  • 应用内搜索 - 使用新的 CSSearchQuery 类提供应用内 Spotlight 搜索功能,类似于邮件、消息和便笺应用的工作方式。
  • 继续搜索 - 允许用户在 Spotlight 或 Safari 中开始搜索,然后打开应用并继续该搜索
  • 验证结果可视化 - Apple 的应用搜索 API 验证工具现在可以在执行测试时显示网站标记和深层链接的可视化表示。
  • 消息应用图像共享 - 允许在消息中共享(通过消息应用扩展)提供的热门应用内图像显示在 Spotlight 搜索中

若要了解详细信息,请参阅 App Search 增强功能指南。

Apple Pay 增强

Apple 在 iOS 10 中对 Apple Pay 进行了多项增强,允许用户通过网站以及通过与 Siri 和地图交互进行安全支付。

iOS 10 添加了几个新的 API,可与 iOS 和 watchOS 配合使用,以支持动态支付网络和新的沙盒测试环境。

此外,PassKit 框架已得到扩展,可支持 UIKit 之外的 Apple Pay,并允许发卡机构在其应用内出示其卡。

若要了解详细信息,请参阅 Apple Pay 增强功能指南。

备用应用图标

Apple 在 iOS 10.3 中添加了多项增强功能,允许应用管理其图标:

  • ApplicationIconBadgeNumber - 获取或设置 Springboard 中应用图标的徽章。
  • SupportsAlternateIcons - 如果为 true,则应用有一组备用图标。
  • AlternateIconName - 返回当前选择的备用图标的名称,如果使用主图标,则返回 null
  • SetAlternameIconName - 使用此方法将应用的图标切换为给定的备用图标。

若要了解详细信息,请参阅备用应用图标指南。

CallKit 简介

iOS 10 中的新 CallKit API 为 VOIP 应用提供了一种与 iPhone UI 集成的方式,并为最终用户提供熟悉的界面和体验。 使用此 API,用户可以查看 iOS 设备的锁定屏幕中的 VOIP 呼叫并与之交互,并使用手机应用的“收藏夹”和“最近访问”视图管理联系人。

此外,CallKit API 还提供了创建应用扩展的功能,这些应用扩展可以将电话号码与姓名(来电显示)相关联,或告知系统何时应阻止某个号码(呼叫阻止)。

若要了解详细信息,请参阅 Callkit 简介指南。

消息应用集成

iOS 10 允许在 Xamarin.iOS 解决方案中包含消息应用扩展,该解决方案与消息应用集成并向用户提供新功能。 该扩展可以发送文本、贴纸、媒体文件和交互式消息。 有两种类型的消息应用扩展可用:

  • 贴纸包 - 包含用户可以添加到邮件的贴纸集合。 无需编写任何代码即可创建贴纸包。
  • iMessage 应用 - 可以在“消息”应用中呈现自定义用户界面,用于选择贴纸、输入文本、包含媒体文件(包括可选的类型转换),以及创建、编辑和发送交互消息。

若要了解详细信息,请参阅消息应用集成指南。

新闻出版商增强

在 iOS 10 中,Apple 允许从主要杂志和新组织到博客作者和独立出版商的任何人注册 Apple News 应用并制作和交付内容。 有关详细信息,请参阅 Apple 的新闻资源文档。

提供 Haptic 反馈

在 iPhone 7 和 iPhone 7 Plus 上,Apple 引入了新的触觉响应,提供了与用户进行身体互动的额外方式。 使用新的触觉反馈选项来吸引用户的注意力并强化他们的操作。

一些内置的 UI 元素已经提供了触觉反馈,例如选取器、开关和滑块。 iOS 10 现在添加了使用 UIFeedbackGenerator 类的具体子类以编程方式触发触觉的功能。

若要了解详细信息,请参阅提供触觉反馈指南。

主动建议

iOS 10 允许系统在适当的时间主动向用户自动呈现有用的信息,从而提供了提高应用参与度的新方法。 正如 iOS 9 提供了使用 Spotlight、Handoff 和 Siri 建议向应用添加深度搜索的功能一样,在 iOS 10 中,应用可以公开系统可从以下位置向用户呈现的功能:

  • 应用切换器
  • 锁屏界面
  • CarPlay
  • Maps
  • Siri 交互
  • QuickType 建议

应用使用一系列技术(例如 NSUserActivity、Web 标记、Core Spotlight、MapKit、Media Player 和 UIKit)向系统公开此功能。

若要了解详细信息,请参阅主动建议简介指南。

请求应用评审

RequestReview() 方法是 iOS 10.3 的新功能,允许 iOS 应用要求用户对其进行评分或评价。 虽然可以在对用户体验有意义的任何时候调用此方法,但审核过程受 App Store 策略的管理和处理。 因此,此方法可能会也可能不会显示警报,并且永远不应该调用该方法来响应用户操作(例如点击按钮)。

若要了解详细信息,请参阅请求应用审核指南。

安全和隐私增强

Apple 在 iOS 10 中对安全和隐私进行了多项增强,这可以帮助开发人员提高应用的安全性并确保最终用户的隐私。

因此,在 iOS 10(或更高版本)上运行的应用必须静态声明其访问特定功能或用户信息的意图,方法是在其 Info.plist 文件中输入一个或多个隐私特定密钥,向用户解释应用为何希望获取使用权。

若要了解详细信息,请参阅安全和隐私增强功能指南。

SiriKit

SiriKit 是 iOS 10 的新增功能,它允许 Xamarin.iOS 应用提供用户可以在 iOS 设备上使用 Siri 访问的服务。 此功能是使用新的“意图”和“意图 UI”框架在一个或多个应用扩展中提供的

SiriKit 支持以下服务领域:

  • 音频或视频通话。
  • 预订车票。
  • 管理锻炼。
  • 消息。
  • 搜索照片。
  • 发送或接收付款。

当用户向 Siri 发出涉及应用扩展程序服务之一的请求时,SiriKit 会向扩展发送一个意向对象,该对象会描述用户的请求以及任何支持数据。 然后,应用扩展会为给定的意图生成适当的 Response 对象,详细说明扩展如何处理请求

虽然 Siri 通常会处理所有用户交互,但应用扩展可以使用“意图 UI”框架来呈现丰富的自定义用户界面,其中包含应用的品牌和其他信息

若要了解详细信息,请参阅 SiriKit 简介指南。

语音识别

iOS 10 包含一个新的语音 API,使应用可以支持连续语音识别,并将语音(从实时或录制的音频流)转录为文本。

由于语音识别需要在 Apple 服务器上传输和临时存储数据,因此应用必须通过在其 Info.plist 文件中包含 NSSpeechRecognitionUsageDescription 键并调用 SFSpeechRecognizer.RequestAutorization 方法来请求用户的许可才能执行识别。

若要了解详细信息,请参阅语音识别简介指南。

用户通知

iOS 10 的新功能“用户通知”框架允许发送和处理本地和远程通知。 使用此框架,应用和应用扩展可以通过指定一组条件(例如位置或时刻)来计划本地通知的发送。

此外,应用或扩展可以在本地和远程通知传递给用户的 iOS 设备时接收(并可能修改)这些通知。

新的用户通知 UI 框架允许应用或应用扩展自定义本地和远程通知呈现给用户时的外观。

若要了解详细信息,请参阅用户通知框架指南。

视频订阅者帐户

视频订阅者帐户框架是 iOS 10 的新增功能,允许支持经过身份验证的流式处理或点播视频的应用使用最终用户的单一登录体验向其有线或卫星电视提供商进行身份验证。

广泛的颜色

iOS 10 在整个系统中扩展了对扩展范围像素格式和宽色域色彩空间的支持,包括 Core Graphics、Core Image、Metal 和 AVFoundation 等框架。 通过在整个图形堆栈中提供此行为,进一步简化了对具有宽色域显示器的设备的支持。

此外,UIKit 经过修改,可在新的扩展 sRGB 色彩空间中工作,从而可以更轻松地在宽色域中混合颜色,而不会造成明显的性能损失。

Apple 在使用宽色时提供以下最佳做法:

  • UIColor 现在使用 sRGB 色彩空间,并且不再将值限制在 0.01.0 范围内。 如果应用依赖于之前的固定行为,则需要针对 iOS 10 进行修改。
  • 在 iPad Pro 上执行自定义 UIView 绘图时,绘图环境将配置为 sRGB 颜色空间。
  • 如果应用执行 UIImages 的自定义渲染,请使用新的 UIGraphicsImageRender 类来指定使用扩展范围或标准范围格式。
  • 当使用 Core Graphics 或 Metal 等低级 API 来提供图像处理时,开发人员应使用支持 16 位浮点值的扩展范围颜色空间和像素格式。 必要时,开发人员必须手动限制颜色分量值。
  • Core Graphics、Core Image 和 Metal Performance Shaders 都提供了在两种颜色空间之间进行转换的新方法。

若要了解详细信息,请参阅宽色简介指南。

小组件增强

Apple 为小组件系统引入了多项增强功能,以确保小组件在新 iOS 10 锁屏界面上的任何背景中都能呈现出色的效果。 NotificationCenterVibrancyEffect 属性已被弃用,并已替换为新的 WidgetPrimaryVibrancyEffectWidgetSecondaryVibrancyEffect 属性。 此外,小组件现在包含一个 NCWidgetDisplayMode 属性,该属性允许开发人员描述有多少内容可用,并允许用户展开和折叠内容。

若要了解详细信息,请参阅搜索和主屏幕小组件增强功能指南。

其他框架更改

除了上面列出的主要框架更改和新增之外,Apple 还在 iOS 10 中进行了其他许多小的框架更改。

若要了解详细信息,请参阅其他框架更改指南。

弃用的 API

iOS 10 中已弃用以下 API:

  • iOS 10 的 CloudKit 中已弃用 CKDiscoverAllContactsOperationCKDiscoveredUserInfoCKDiscoverUserInfosOperationCKFetchRecordChangesOperation 类。 请改用 CKDiscoverAllUserIdentitiesOperationCKUserIdentityCKFetchRecordZoneChangesOperation 类(支持记录共享)。
  • 已弃用多个 CKSubscription API(例如基于区域和基于查询的订阅)。 请改用 CKRecordZoneSubscriptionCKQuerySubscription API。
  • 已弃用与无处不在的内容相关的 NSPersistentStoreCoordinator 符号。
  • 已弃用 ADBannerViewADInterstitialAd 以及 UIViewController 类中的相关符号。
  • 已弃用与浮点值相关的 SKUniform 符号。
  • 已弃用 UIKit 的 UILocalNotificationUIMutableUserNotificationActionUIMutableUserNotificationCategoryUIUserNotificationActionUIUserNotificationCategoryUIUserNotificationSettings 类。 请改用用户通知框架。
  • 已弃用 HandleActionForLocalNotificationHandleActionForRemoteNotificationDidReceiveLocalNotificationDidReceiveRemoteNotification WatchKit 方法。 请改用 HandleActionForNotificationDidReceiveNotification 方法。
  • 已弃用 WKExtensionDelegateDidReceiveLocalNotificationDidReceiveRemoteNotification 方法。 创建实现适当方法的 UNUserNotificationCenterDelegate 实例,并将其分配到 UNUserNotificationCenter 对象的 Delegate 属性。
  • Game Center 应用已被弃用并从 iOS 中删除。 如果应用使用 GameKit,则它必须提供自己的界面来显示 GameKit 功能,例如排行榜等

请参阅 Apple 的 iOS 9.3 到 iOS 10.0 API 差异文档,了解完整的弃用列表。