任务处理与多窗口

多任务处理让用户从一个应用快速切换到另一个应用,并在不同的设备上提供额外的体验。例如,在 iPhone 上,多任务处理让用户在使用 FaceTime 或在画中画窗口中观看视频的同时,还能使用其他的应用。

Frame-13

在 iPad 上,多任务处理可以让用户同时查看几个不同的应用窗口,并与之交互。一个应用还可以启用多个窗口,允许用户同时查看这些窗口,并与之交互。

Frame-14

Frame-15

iPadOS 可以提供多种配置呈现在多任务处理窗口中,支持多种工作流程。该系统还提供了多任务处理控件——让用户切换多任务处理的配置——和应用搁架,允许用户访问应用中所有打开的窗口。

Frame-16

用户可以选择以下配置之一,在 iPad 上打开多任务窗口。

滑动侧栏(Slide Over) 当第一个窗口全屏显示时,滑动侧栏会以覆盖在其之上的方式打开第二个窗口。用户可以改变滑动侧栏窗口在屏幕上的位置,或者将其隐藏在屏幕外,需要时再呼出窗口。人们还可以在滑动侧栏中打开多个窗口,在那里形成一个窗口堆叠。

分屏浏览并排显示两个窗口,用户可以调整窗口的相对大小,并在两个窗口的内容间进行交互。在分屏浏览中查看并排的两个窗口时,用户还可以在滑动侧栏中打开第三个窗口。

画中画可以在一个可移动、可调整大小的窗口中打开视频,并悬浮在全屏应用上方。

Frame-17

Frame-18

Frame-19

注释:应用不会控制多任务处理配置,也不接收任何关于用户选择的配置指示。

用户希望在他们的设备上使用多任务处理功能,如果应用不允许的话,他们可能会认为应用出了问题。除了极少数例外——比如一些仅支持全屏的 iPad 应用——每个应用都应该能很好地支持多任务处理。相关指南,请参考支持多任务处理

为了帮助你的 iPad 应用在用户以分屏浏览或滑动侧栏形式中打开它时能够正确响应,请确保它能够优雅地适配不同的屏幕大小;相关开发指南,请参考 iPad 上的多任务处理。要了解有关用户如何使用 iPad 多任务处理功能的更多信息,请参考在你的 iPad 上使用多任务处理

除了确保应用在多任务处理下运行良好,还需要通过一些额外的功能来支持多窗口。相关指南,请参考在 iPad 中开启多窗口;相关开发指南,请参考场景

重点:要在 Mac 版本的 iPad 应用中启用多窗口,你必须在 iPad 上实现多窗口功能。相关指南,请参考 Mac Catalyst

支持多任务处理

要在多任务环处理境中稳定运行,应用需要与设备上的其他应用和谐共存,最大限度地减少对 CPU、内存、屏幕空间和其他系统资源的使用。多任务处理应用还能很好地响应来自其他应用的突然中断和音频,快速流畅地与后台进行过渡,并在后台运行时为其他应用的稳定提供保障。

  • 做好应对中断和恢复的准备

    你的应用可以在任何时候被中断。当中断发生时,应用需要快速准确地保存当前状态,这样用户才能在返回时无缝地从他们被中断的地方继续使用。相关开发指南,请参考对应用的启动做出响应。

  • 暂停那些需要用户分散注意力或主动参与的行为

    例如,如果应用是游戏或媒体浏览应用,请确保用户在切换到其他应用时不会错过任何东西。当用户切换回来时,请让他们继续,就好像他们从未离开过一样。

  • 对音频中断做出适当响应

    有时候,应用的音频可能会被另一个应用或系统本身的音频中断。例如,Siri 发起的来电或音乐播放列表可能会中断应用的音频。当出现类似情况时,用户期望应用程序能以下方式做出响应:

    • 对于主要音频的中断,应无限期暂停音频,例如在播放音乐、播客或有声读物时。
    • 对于较短的中断,可以暂时降低音量或暂停音频,例如 GPS 方向通知、恢复原始音量或在中断结束时播放。

    相关指南,请参考音频

  • 在后台完成用户发起的任务

    当用户在应用中开始一项任务时,即使他们离开了应用,他们也希望应用能在后台继续运行。如果你的应用正在执行一项不需要额外输入的任务,请在暂停之前在后台完成它。

  • 谨慎地使用通知

    将应用的发送通知安排在特定时间,无论应用是暂停状态、在后台运行,还是根本没有在运行。通常情况下,避免当应用在后台完成任务时发送通知。相反,应让用户通过返回应用来查看任务情况。相关指南,请参考通知

在 iPad 上开启多窗口

从概念上讲,iPad 应用倾向于使用两种类型的窗口来提供内容:

  • 主窗口显示应用的完整层次结构,提供对应用的所有对象和与其关联的操作的访问。例如,邮件应用使用一个主窗口来展示所有的邮箱和邮件列表。
  • 辅助窗口显示应用中的特定任务或区域,通常使用模态展示。辅助窗口专注于一种体验,不支持导航到其他应用区域,而且它通常包括用户在完成任务后用于关闭它的按钮。例如,邮件应用使用一个辅助窗口来呈现单一的信息。

在 iPadOS 15 及更高版本中,可以指定一种呈现样式,用于确定用户在应用中打开的每个窗口的初始外观。尽管用户可以在打开窗口后对它陈重新定位,但指定一种呈现样式可以在视觉上强化窗口的任务或内容的性质。iPadOS 定义了以下呈现样式:

  • 凸显

    一种凸显窗口、使周围区域变暗并防止用户与之互动的模态呈现。

  • 标准

    能够与对等窗口交互的并排呈现,每个窗口都支持应用的全部功能。

  • 自动

    系统根据应用请求窗口的场景选择的一种呈现形式。

注释:如果只需要让用户查看一个文件,你可以在不创建窗口的情况下展示它,但你的应用仍必须支持多窗口。相关开发指南,请参考 QLPreviewSceneActivationConfiguration

  • 使用突出的样式来展示一个独立的任务,用户在无需打开应用其他部分的情况下即可完成

    例如,突出的样式可以很好地支持文档编辑,或其他针对特定文件或内容集合的任务。确保突出的窗口本身也是有用的;避免使用它来呈现次要任务、补充行为或选择影响主要任务的项目。

  • 使用标准样式来呈现同一任务或内容的多个版本

    例如,Safari 浏览器使用标准样式,帮助用户同时查看屏幕上的两个浏览窗口并与之交互。

  • 只有当用户采取明确的行动时,才打开一个新窗口

    例如,用户可以在应用搁架或 App Exposé 点击添加(+)按钮,或选择一个菜单项。避免通过打开一个用户不需要的新窗口来给他们制造惊喜。

  • 确保应用窗口支持你所启用的每一项任务

    多个窗口可以提供方便高效的工作流程,但用户始终需要能够在单个窗口中访问每个应用的功能。

  • 保存用户打开的每个窗口的状态

    当用户返回到一个窗口时,他们希望窗口的状态与离开它时一致。相关开发指南,请参考恢复你的应用状态

  • 考虑让用户使用手势在新窗口中打开内容

    例如,用户可以使用捏合手势将备忘录应用项目展开到新窗口中。支持手势的转换始终使用突出的呈现样式,使生成的模态窗口感觉像是展开项目或任务的自然结果。相关开发指南,请参考 collectionView(_:sceneActivationConfigurationForItemAt:point:)(从集合视图项转换)或 UIWindowScene.ActivationInteraction (从任何其他视图中的项目转换)。

  • 考虑提供一个菜单项,让用户在新窗口中打开内容

    启用这一行为时,当应用在 iPad 上或在使用 Mac Catalyst 的 Mac 上运行时,菜单会出现一个 "在新窗口中打开 "的选项,但是当应用在 iPhone 上运行时则不会出现。如果它在你的应用中是有意义的,可以让应用在 iPhone 上运行时提供另一个显示项,例如“显示详细信息…”。你可以将“在新窗口中打开”项添加到场景菜单,或附加到按钮和工具栏按钮项的菜单上。相关开发指南,请参考 UIWindowScene.ActivationAction

  • 为提供在新窗口中打开内容的方法时,请避免指定布局

    因为你不知道用户使用的是哪种多任务处理配置,所以应避免提供像“在分屏浏览中打开”或“在前面打开”之类的菜单选项。

  • 在面向用户的内容中,始终使用“窗口”这一术语

    无论是哪种类型,系统都将应用窗口称为“窗口”。使用不同的术语——包括“场景”一词,它指的是执行窗口——可能会让用户感到困惑。

网页快照 https://cubox.pro/share/F3RnWu