大多数浏览器和
Developer App 均支持流媒体播放。
-
打造易于访问的单个 App 模式体验
了解如何在单个 App 模式中为您的 App 用户提供更多控制和辅助功能。我们将分享如何在必要时利用 UIAccessibility 和“自动评估配置”框架来应用这些限制,并且在无需打开“设置”App 的情况下启用这些辅助功能。我们还将向您介绍如何在您的 App 中添加自定义限制,以更好地支持 iOS 中的“引导式访问”功能,这项功能会暂时将任何 App 置于单个 App 模式当中。
资源
相关视频
WWDC23
WWDC22
-
下载
♪ ♪ Drew Haas: 大家好 我是 Drew Haas 是 Accessibility 团队的一名工程师 今天我来谈一谈如何创建 可访问的 Single App Mode 体验 Single App Modes 能让开发者 在 iOS 和 iPadOS 设备上 限制某些行为 从而以独特的方式 为用户提供服务 即是说 这些模式能让您 将设备锁定到单个 App 中 根据不同模式的区别 该限制可以通过系统 或 App 来启动 它的优势在于可以让您控制 限制状态和非限制状态之间的 时间设置 您还可以在 single app mode 上 申请其它限制 如是否启用自动锁定
我们还要记得考虑无障碍用例 您应确保依赖无障碍功能的人 可以开启该功能 这样即使设备受限也可以使用 这可以确保您的 App 包容 使用辅助技术的用户 针对何时使用 Single App Mode 我为大家分享一些案例 假设您正在开发一款 App 供顾客在餐厅或活动中 点餐或点饮料 或用于医务室的 App 医务人员可让患者在设备上 填写他们的信息 亦或是对学生进行 课堂测试的 App 在所有这些场景中 都可以用 Single App Mode 限制 为用户创造一个专注的环境 您知道吗 您的 App 甚至在没有代码的情况下 也能在 Single App Mode 下使用 没错 Guided Access 是一项无障碍功能 让用户可以在 Single App Mode 中 置入任何 App 首先 我们来看下 Guided Access 并回顾下人们在这种模式下 使用您的 App 时 有什么注意事项 接下来 我会谈到 通过采用某些 API 和 framework 从您的 App 中以编程方式 启动 Single App Mode 最后 我们专门为在 Single App Mode 下的使用 提供了无障碍 API 使用此 API 打开或关闭 某些无障碍功能 创建一个无缝 无障碍的体验 我们先了解一下 Guided Access 要启动 Guided Access 首先确保它已在 无障碍设置中打开 然后打开您要锁定的 App 三击侧边按钮 运行无障碍快捷方式 会显示 guided access 工作区 供您配置系统限制 然后点击 Start 开始
现在设备处于受限状态 它被锁定到最前面的 App 上 且应用我在 options 菜单中 配置的限制 这可以为有认知障碍的用户 创建引导式体验 要退出 Guided Access 您只需要 再次运行无障碍快捷方式 options 菜单可以让您限制 触摸交互 显示动作 软键盘及硬件按钮活动 比如音量键 和睡眠 / 唤醒按钮 这种受控环境 对于有认知障碍的用户 特别有用 但许多其他用户也同样 喜欢这个功能 从无障碍用户 到有年幼孩子的父母 都可以轻松访问这些设备限制 并从中受益 这时候您就可以闪亮登场了 UIAccessibility API 让您可以 创建自定义限制 来定制 Guided Access 期间的 App 体验 利用这个机会 限制或调整 App 的区域 防止有认知障碍的用户 在众多 options 中 搞得迷失或焦头烂额 关于无障碍认知方面 我与大家分享一些设计注意事项 这些原则在可能的情况下 是需要长期遵守的 但是您 App 在 Guided Access 期间 应加以特别关注 首先是容错 在用户运行重大 或不可逆转的动作前 警告用户 从而提前解决错误 比如删除或修改账户信息 或付款信息 您的目标应该是减少 对 App 上某些动作 采取行动的时间依赖性 因为并不是每个人 都能以同样的速度处理信息 短暂暂停会让 App 难以使用 可使用定时警报或自动运行动作 一定一定要记住 在用户付款前 提供一个确认的机会 这包括可一键购买的 应用程序 设计 App 时 如果加入了这些考虑 可以提升无障碍用户的独立性 我给大家看一个例子 我正在开发一个名为 Reading Observatory 的 App 它可以帮助人们记录 一周内的阅读量 App 主页显示阅读进度 有两个按钮 Account Settings 按钮 和 Continue Reading 按钮 我在 App 中添加了自定义限制 当 Guided Access 处于活动状态时 锁定 Account Settings 按钮 这个限制下会为我的 App 提供独特的体验 防止用户跳转到其它地方 无法返回 如他们可能会在 Account Settings 中 做出意料之外的修改 这样用户被卡住 需要帮助才能重回 App 主要功能的次数也会减少 也就是阅读 为此 首先您的 AppDelegate 应符合 UIGuidedAccessRestrictionDelegate 协议 您需要提供一组标识符 让 Guided Access 知道每个限制 我只有一个 如果您需要提供更多详细信息 您还需要为每个限制提供一个 面向用户的标题以及可选的描述 这些字符串将显示在 options 菜单中 最后 运行 guidedAccessRestriction (withIdentifier:didChange:) 方法 当限制被切换时接收一个回调 在这里 您的 App 就可以发布通知 运行符合限制的逻辑 比如关闭某些按钮的用户交互 或介绍一些之前的设计原则 检查自定义限制是否 随时可通过在 UIAccessibility 上 调用 guidedAccessRestrictionState (forIdentifier:) 来启用 所有提供限制以及基于 App 自定义限制的系统 都让 Guided Access 可配置程度极高 这就是它的无障碍功能 如此好用的原因 Guided Access 可以在 Accessibility Settings 中找到 其它 Single App Modes 可以让您 以编程方式 在设备上进入受控会话 它们与 Guided Access 有相似之处 但其中关键区别是 是否以编程方式进入这个模式 这意味着在设置 启动和定制 您的 Single App Mode 会话方面 还有很多内容要讲 还记得之前的每一种情况吗 用在餐厅 医务室 测试环境中的 iPad single App Modes 是所有 这些情况的正确解决方案 尽管每个人的需求都略有不同 但他们都受益于将设备锁定到 单个 App 可以防止人们擅离岗位 修改 Settings 中的内容 甚至在 Safari 中查找内容 我们逐一了解下 基于我们的限制需求 我推荐 Single App Mode
第一种模式是最基本的 也是最容易部署的 简称为 Single App Mode 对于您想让设备 永久留在单个 App 中来说 这是正确的解决方案 重启后它仍然锁定在 App 中 并且不需要人工干预来维护 非常适合低参与度的方式 不过有几点需要考虑 设备必须受到监管 管理工具 可以帮助您将大量设备 立即锁定到 Single App Mode 中 所以如果您有很多设备 这是非常值得考量的解决方案 Apple Configurator 可以让您 以多种方式管理设备 包括将它们 置于 Single App Mode 选择一个监管设备 在 Advanced 下 选择 Start Single App Mode
您需要做的最后一件事 是选择一个 App 然后它会自动启动 并锁定至前台显示模式
没有其它方法可以退出此模式 正如我提到的 它将保持锁定状态 即使在重启后也不会改变 除非您通过您的管理软件 结束 Single App Mode Autonomous Single App Mode 更适用于 经常进入和退出的受限状态 例如 在医务室中 新病人在 iPad 上 填写信息 然后交还给 工作人员的时候 这意味着在受限的状态之间 会加入人工干预 您的 App 需要自行通过 通过使用单个 API 方法调用 来进入或退出 还有 考虑到 该设备必须受到监管 以及想要使用此 API 的 App 必须允许在设备上配置文件 否则锁定请求将因为没有特权 请求失败 万能的方法是 在 UIAccessibility 上的 requestGuidedAccessSession(enabled:completionHandler:) 这听上去很耳熟 是吧 这个 API 直接进入了 Guided Access 的根目录 您基本就是以编程方式 使用这个代码 进入或退出此功能 很酷 对吧 那是因为 Guided Access 是其它 single app mode 存在的基础 我想您应该不知道这一点 我们来看看这段代码在实际当中 是如何工作的 我有一个进入和退出 这个模式的方法 等我准备好后再来调用 它们运行不同的动作 如一个新病人在我们进入 受限状态时开始填写登记表 然后在退出时记下他们的信息 当然 您需要完成处理程序的 解决结果 才能知道是否出了问题 如果确实出了问题 您可以 给用户发出警报 并推迟进一步的体验 这样他们就可以再试一次 检查 Autonomous Single App Mode 是否可以随时通过 在 UIAccessibility 上 调用 isGuidedAccessEnabled 来启用 还要观察 guidedAccessStatusDidChangeNotification 在进入或退出此模式时 是否会触发任何附加代码 记住 想要使用这个 API 的应用程序 必须有适当的监督与管理 包括将应用的捆绑 ID 作为允许的 App 列入 Autonomous Single App Mode的 许可名单 最后是 assessment mode 当您的 App 想要在测试期间 通过限制某些功能 防止不公平的优势时 这就是最适合的模式 关闭自动更正 拼写检查 和锁定到 App 的 single app mode 这样测试对象就无法访问 外部笔记或资源了 最近当我们介绍 Automatic Assessment Configuration framework时 这些 framework 已在 iOS 和 macOS 中统一 使用时 该设备不需要 像以前的模式一样受到监管 但必须向 Apple 申请 您的 App 的评估资格 您可以在开发者文档中 找到更多关于 申请相关资格的信息 我的同事 Josh 已经进行了 一场精彩绝伦的 WWDC 讲座 解释了如何使用 Automatic Assessment Configuration framework 包括大量代码示例和文档资源 大家可以去看一看 一旦您知道哪个 single app mode 解决方案更适合您 或者您已经有一个可行的解决方案 记住 使用辅助技术的用户 一定会使用您的 App 您可能需要采取额外的步骤 来搭建无障碍体验 在我们 iPad 用于餐馆点餐的 经典案例中 我们假设一个盲人客户 前来点餐 如果设备被锁定在Single App Mode 那么就会出现问题 您无法打开 Settings 从而进入 Accessibility 并为此用户打开 VoiceOver 那您能做些什么呢
Apple Configurator 和其它 设备管理软件 会帮助您配置 适用于 Single App Mode 的选项 一些无障碍功能 始终可供您启用 无障碍快捷方式 也称为“三击”菜单 可以让用户 快速切换无障碍功能 如 VoiceOver Zoom Invert Colors AssistiveTouch 和 Voice Control 当这些功能始终处于开启 或都当它们被分配到 无障碍快捷方式时 您就可以让依赖这些技术的用户 在浏览您的 App 时使用它们 这很容易设置 所以不要错过这样的机会
但是在进入 Single App Mode 之前 必须配置这些选项 那在 Single App Mode 下呢 在 UIAccessibility 上使用 API 直接用代码 切换某些辅助功能 这是切换的绝佳选择 具有无障碍快捷方式的功能 这在设备由于餐厅场地的阻碍 无法触碰到硬件按钮时非常有用 通过我们制作的这个 API 可以简单地关闭无障碍功能 这样您可以做一些后勤工作 并重置用户之间的状态 为了完成这一点 要在 UIAccessibility 上 调用 configureForGuidedAccess 您必须通过兼容的辅助功能 看看您是否要启用它 这适用于 Zoom VoiceOver Invert Colors AssistiveTouch 和 Grayscale 所以您的 App 是否有自定义 Guided Access 的限制 或者是否围绕 Single App Modes 来搭建整个体验 最重要的是要知道如何确保 它是无障碍的 错误的限制会降低 其无障碍性能 所以一定要考虑到 使用 App 的残障人士的体验 我为大家演示了 您创建无障碍 Single App Mode 的 API 现在就行动起来 开发强大 无障碍的 App 吧
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。