大多数浏览器和
Developer App 均支持流媒体播放。
-
适用于商店类和评估类 App 的 iOS 配置和 API
iOS 提供了多种技巧来帮助您突显自己的 app。不论您是在构建商店、酒店入住还是教育评估类 app,选择合适的 app 锁定技巧都至关重要。从引导式访问到自动评估配置功能,您将了解哪种方法最适合您的独特体验。
资源
-
下载
大家下午好 谢谢你们 今天来到这里
我叫 Steve Hayman 我是一名顾问工程师 来自加拿大多伦多 在坐的有加拿大人吗 好的 大家好啊 我想向你们问好 现在是周五下午 而你们依旧在这里 我也要向日后 观看视频的人问好 他们可能生活在 有飞行汽车等高科技的未来 我非常激动想知道 未来会变成什么样 而今天我们的话题也同样令人激动 它就是 自助服务与评价测试 App 的 iOS 配置与 API 具体来说是什么 我们讨论的是 将 iPad 锁定在某一特定的应用上 我们将介绍 你可以完成此项功能的 不同方法 有一些需要 手动处理 有一些则是程序化的 关于刚刚说到的内容 让我来向你们展示 一些例子
这是我的 iPad
你可以这么做 所有人都可以在任何 iPad 上这么做 任何人都可以前往“设置”>
“通用”>“辅助功能” 然后滑到最下方的“引导式访问” 如果你开启此功能 现在你能够锁住 iPad 将任意 iPad 锁在任意的应用上 很多家长和老师 在把 iPad 交给孩子之前 都会这么做 比如说 如果你的孩子 对地图非常感兴趣 你可以启动“地图” 因为开启了引导式访问 你可以点击 三次 Home 键 1 2 3 并提供一个密码 密码要设计的 很难猜 音效 现在我就可以把 iPad 交给我对地理着迷的孩子 他们一整天都可以使用“地图” 但他们无法使用 Home 键 他们不能退出应用 弄乱我的东西 直到我再次点击三次 Home 键 1 2 3 并输入密码 这就是“引导式访问” 这是 Apple 的一个辅助技术 很久之前 就已经有了 这是将 iPad 锁在你想要的应用上的 基本方法 这是一个办法 但我想向你们展示另一种方法 我们都是开发人员 让我们来说一说 完成该功能的程序性方法 在这里我有一个提供考试的应用 你可能在学校 进行标准化考试的时候 见过它 在学校 我们都非常担心 在考试途中 学生会点击 Home 键 使用 Safari 打开 Wikipedia 我们真的不希望 这种事情发生 因此一个像这样的应用 当我打开它的时候 我们并没有马上被锁定 我还可以点击 Home 键 但我一旦点击 Start Test
这个 App 就会在我点击的时候 按照需求锁住 iOS 我点击的时候 这里会出现一个小面板 显示着“你是否确定让 App 自锁?” 如果我选择“是” 考试就开始了 现在 Home 键已经被锁住 这个锁定是通过代码实现的 之后我会给大家 展示代码 我在考试中不能作弊 我不能通过点击 Home 键 退到主屏幕 我可以在这里提交我的答案
是“渥太华” 我点击“提交”的时候
这个 App 又会解锁 iOS 我们将要介绍这个功能 如何实现 锁定和解锁 现在我又能够 点击 Home 键了 有两种不同的方法 锁住 Home 键 一种是完全手动的 通过“引导式访问” 并在设备上 点击三次 Home 键 另一个是 程序的方法 相信你也同意 后者较为灵活 这是两种方法 我将介绍 锁定应用的 四种方法 一个是我们刚刚看到的 “引导式访问” 这是一个很好的技术 可以让孩子 专心于一项特定的任务 比如说你可以把你的孩子锁定在 Swift Playgrounds 中 直到他们能够解释 结构和类的区别 再解锁 不管在哪种情形下 你都能把孩子 锁定在特定的应用中
在自助服务中 你将经常看到另一种技术 就是单一 App 模式 它可以有效的将 iPad 几乎永久的 锁在某个特定的应用上 如果你去过 Apple 商店的话 你可能见过这样的情况 用于展示的一些 iPad 永远在运行 信息介绍的应用 你无法退出
但编程人员还可以使用 另外两个技术 第一个叫 自主单一 App 模式 想想这样一个场景 你有一个医疗诊所 护士正在使用一款 含有保密信息的应用 然后来了一名患者 你希望将 iPad 交给患者 完成登记 并在此期间锁住 iPad 拿回 iPad 时 再解锁 这样患者就不会 在你 App 的运行过程中 点击 Home 键随意使用了 这就叫 自主单一 App 模式 进行锁定时 它是单一 App 模式 但它是自主的 你的应用将自行决定 何时进行锁定 第四种模式是 特别为那些 教育界 创建标准化考试应用的人 设计的 叫做自主评价配置 用于参加重大考试的学生 它会锁定 iPad 同时禁用一些 附加功能 比如拼写检查 自动更正和 Siri 你不会希望学生 在考试时使用这些功能 我们将介绍 这四个情景 他们都有不同的 技术要求 “引导式访问” 可以在任何 iPad 上使用 任何人可以拿过 iPad 开启“引导式访问” 然后点击三次 Home 键启用它 这是一项被 广泛使用的技术 单一 App 模式 可见于自助服务中 它只能在 被管理和监控的设备上工作 它不会在普通设备上工作 比如你自己 从家里带的 iPad 它只在被管理的设备上工作 并且需要 MDM 和系统管理员 的支持 需要有人指定 现在要锁定 哪些 或哪个特定的 App 自主单一 App 模式 要灵活的多 它仍然需要被监控的设备 并且需要管理员 为特定的应用设置白名单 但现在它意味着 iPad 可以 自主决定 你的 App 可以决定 何时锁定 何时解锁 最终的最后一个是 自主评价配置 它是评价系统开发人员的 最佳选择 因为它不仅能够锁定 iPad 还能禁用一系列功能 充满“创造力”的学生 可能在考试中使用这些功能 帮助自己回答问题 这个自主评价配置 需要向 Apple 申请 特殊授权 一旦你获得授权 你的 App 就可以 锁定任何设备 无论该设备是否被管理 所以实现程序化的 锁定 iPad 有几个不同的方法 我们刚刚见到的 “引导式访问” 是让孩子专注特定任务的好方法 它的优势很明显 任何人都可以设置 设置起来也很容易 但也有一些不便 但它不具有可扩展性 因为你必须 走上前去 点击每一台 iPad 如果你有成百名学生 他们将要进行考试 那要有人走过去 在这上百个设备 每一个的 Home 键上 点击三次 这并不能规模化操作 外加你还要 管理密码 因此它在某些情况下适用 其他情况就不合适了
你可以对 kiosk 使用单一 App 模式 从而获得一定程度的 远程控制 如果你有一些 iPad 你只想让它们 运行一个应用 比如显示火车时刻 或预订会议室 管理员可以向 被管理的 iPad 推送一条命令 将它锁定在 该应用上 事实上 你可以同时锁定 成百上千台 iPad 举个具体的例子 假设你有一个 旅游类自助服务应用 你希望你的 iPad 仅运行这个应用
管理员会运行 MDM 工具 指明你的应用 是单个 App 模式中 唯一被允许运行的应用 在推送这个配置的时候 iPad 就会立即 启动该 App 并留在该 App 内 如果你重启该设备 它也会再次回到 自助服务应用 这是一个很好的方法 能够尽量永久的将 iPad 锁在一个特定的应用上 退出该模式的方法是 从管理控制台 推送一条新命令 移除单一 App 模式的设置
对同时锁定成千上万台设备 非常有用 并且可以几乎永久锁定 只是需要 IT 人员的介入 我们遇到过一些情况 有人忘记通过该技术 解锁 iPad 如果你在学校 将所有的 iPad 都锁定为数学考试 并且忘记解锁它们 那所有人都用不了 iPad 了 直到你想起 推送下一条命令 该技术需要使用通过 MDM 管理的 受监控设备 我要说这个技术最大的不足就是 开发人员没有 控制的权限 一旦设置为单一 App 模式 设备就会立即锁定 我们就被卡在 该应用里 而不是逐步锁定 如果作为开发人员 你可以控制什么时候 进行锁定 难道不是更好 更有趣吗 就像比如说 你有一个这样的医疗机构 和一个充满保密信息的 患者管理应用 当患者到来的时候 如果你可以把 iPad 交给他们 点击一个按钮 知道 iPad 已经被锁定 在这个界面无法使用 Home 键 这难道不是很方便吗? 一旦患者填写了 所有的个人信息 他们就可以点击“登记” 然后将 iPad 交还给我们 此时 iPad 会解锁 我们又可以重新控制了 如果点击 这个按钮
这个按钮 就可以开启锁定 难道不是很棒吗? 哇 是的 是的 你们是对的 这确实很棒 不是吗 这边呢 这边的听众 你们觉得呢 是的 是的 这会很酷 不是吗 嗯 你们猜 我们有没有提供这个功能 嗯 事实上 我们确实为你们 提供了这项功能
它就是 UIAccessibilityRequestGuidedAccessSession()
很好 这个函数非常好记 UIAccessibilityRequestGuidedAccessSession()
它控制锁定和解锁 还有另一个函数 叫 UIAccessibilityIsGUidedAccessEnabled() 这是一个布尔型函数 你可以用它 检查现在是锁定还是解锁的状态 这是你们一直想要的 通知函数 当锁定状态更改时 你会收到提醒 但最主要的 是这个函数 UIAccessibilityRequestGuidedAccessSession()
它是关键 如果你的设备 和应用进行了正确的设置 并且完成了所需的安装 你的 App 就可以 调用该函数立即锁定 iPad 并且通过再次调用 进行解锁 让我强调一下 只有当 iPad 和你的应用 进行了正确的设置才可以 这是一个非常强大的函数 不是所有的应用 都可以使用 添加代码非常重要 但你实际上还需要 完成其他几个步骤 既然说到了代码 就让我们看一下几段代码 你需要调用该函数 开始一个锁定会话 你可以给函数传值 true 或者 false 分别代表 锁定和解锁
你还需要 在函数中添加完成处理器 它会在请求完成时 被调用 锁定或解锁可能需要一两秒 才会生效 所以你需要传入一个完成处理器 它会获得 一个布尔型参数 代表请求是否 已经成功完成 有可能 请求会失败 所以你需要进行检查 如果一切顺利 你也确认请求成功执行 那就有理由相信 现在 iPad 已经上锁 Home 键无法使用 你就可以进行想要的下一步操作了 在我们假想的医疗机构的例子中 让我们假设我们已经有了 这样一个函数 它能够启动新视图控制器 显示患者登记的界面 你可以像这样把它放进代码中 那么只有当设备被成功 锁定时 才会发生跳转 当患者完成操作时 你需要执行另一个函数 从而回到主界面 你可以把类似这样的函数 放在这里 你可以设置 UIAccessibilityRequestGuidedAccessSession() 的参数为 false 这就是关闭 App 锁定的请求
你还可以调用 另一个函数 UIAccessibilityIsGuidedAccessEnabled() 通过返回值是 true 还是 false 做一些额外的检查 你可以随时检查 现在是否处于 锁定的状态 这里还有一个通知函数 UIAccessibilityRequestGuidedAccessStatusDidChange() 你可以使用它 这样一来 当锁定状态发生更改 无论是开启还是关闭 你的 App 都能立刻收到通知
所以将所有这些技术 结合起来 就是自主单一 App 模式 ASAM 它与单一 App 模式类似 但它是自主的 因为你的 App 可以控制 何时 锁定与解锁 你可以锁定 应用的一部分 为了实现这一功能 iPad 需要进行 特定的设置 让我们讨论一下 这些需要满足的要求 第一个要求 你必须编写代码 必须调用该函数 第二个要求 所用设备必须是受监控的 这是一种 iOS 管理的 极端形式 第三 你的 App 必须被 MDM 管理员 设置为白名单 管理员必须授予 特定应用 调用该函数的权限
这就是管理员的 责任 在 MDM 工具中 你可以在这里标记 允许进入和退出单一 App 模式的 应用 只有名单上的应用 才被允许 使用该函数 所以你需要将允许使用函数的 App 列在这里 请记住 它只能在受监控的 iPad 上工作 不能在大家从家中带来的 iPad 上工作 最终 它将转为 配置文件中 特定的 Key 和值 所有被授权进行此项操作的 App 它们的数据包 ID 将被传送到 设备 一旦完成配置 你的 App 就可以 调用该函数 进行锁定和解锁 你也就可以进行控制了 这就是自主单一 App 模式 你可以防止人们 有意或无意的 退出 应用
然而它还有 一些问题 它需要受 MDM 管理和监控的设备 并且 IT 部门需要将 你的 App 加进名单 给 App 授权 在某些情况下 实现这些操作非常繁琐 但对于患者登记的情景 或者 银行的抵押贷款专员 将 iPad 递给你 填写个人信息的情景 该技术则非常理想 我们希望 iPad 立即锁定 它对于这些场景非常合适 但是对于考试评估来说 该技术不具有足够的 鲁棒性或者稳健性 考试有其自己的 一套要求 如果你在为 一大群学生进行 一场重大的考试 不仅是学生们 会被依照他们的知识进行评价 老师和学校 也会被根据考试结果 进行评估 因此在应用中提供 提供一场 尽可能公正的考试 就十分重要了 我们不希望学生作弊 这就是我们讨论的 原因 我们希望让 学生作弊变得异常困难 适用于其他情景的 三个技术 在考试评估场景中并不适用了 因为它们不能关闭 特定功能 比如拼写检查 词典查找等等 这些功能在 其他场景中仍然运行 但你不希望它们在考试中可用 所以 Apple 推荐 自主评价配置 这是考试创建者
可以采用的方法 那么它到底是什么 评价考试 App 会面临 独特的挑战 iPad 上有许多非常有用的功能 但在进行考试时 不应该 使用它们 为了保证 考试的公平性 我们想要禁用 从考试外复制粘贴 进考试的功能 当然我们也想要 禁用其他应用 并且我们也想在英语考试中 禁用拼写检查 并且禁用 内置 词典 所以你需要禁用 特定的硬件功能 以进行严格的考试 虽然你可能还没想到 但你肯定也需要 禁用从 iPad 分享的功能 我们不能允许学生 复制所有的问题 使用“分享”菜单 将它们传到外界其他学生的 iPad 上 我们也需要关闭 通用剪贴板 实际上 我们需要关闭很多东西 为了进行安全严格的考试 你确实需要 关闭这些功能 锁定 iOS 像我之前展示的那样 再加上自动禁用 所有需要禁用的功能 就叫做 自主评价配置
现在 AAC 也就是 自主评价配置 与刚才所示的 ASAM 大致相同 需要使用同一个函数 你给函数传值 true 就是锁定 传值 false 就是解锁 你可以检查状态 与刚刚的过程 一模一样 但除此之外 在你使用该函数锁定的同时 所有列出的功能 也会在考试期间 被自动禁用 当你调用解锁函数时 这些功能又被启用
它需要满足一个条件
虽然这项技术在任何 iPad 上均可运行 无论它是否被管理 但因为这项技术非常强大 在请求被成功处理之前 你的应用 必须获得 特殊权限
技术上来说 这项请求叫做 com.apple.developer.edu-assessment-mode. 你需要向 Apple 申请这项权限 一旦获得 你的 App 就可以锁定和解锁 不需要使用被监控的设备 也不需要被加入白名单了 在构建你的 App 时 你需要包含一份含有此特殊权限的 配置文件 那么一旦锁定了 iPad 要如何解锁呢? 现在这台设备被锁定了 通常情况下它会在 考试结束时被解锁 因为你将调用函数并传值 false 考试时间到了 学生们 必须提交答案
但当用户重启 iPad 时 它也会被解锁 这不像单一 App 模式 可以永久的 锁定一台设备 这只是暂时的 单一 App 模式 八个小时之后 它也会被解锁 如果你管理的是 一场非常长的考试 你可能需要留意 这一点 当锁定状态改变时 你会收到通知 并且你将有机会 再次锁定 如果你创建了一个 需要八个小时才能完成的考试 请告诉我 我是不想参加 那种考试的 使用这一技术时 人们看到的是这个界面 这是一个简单的应用 你也可以下载 与本场会议相关的 简单代码 这两个按钮控制 锁定和解锁 这个 App 是获得正确权限后 构建的 这里有一个文本框 你可以通过输入 查看拼写检查能否运行
所有操作都会被记录在日志中 当你点击这里的“开启 App 锁定” 调用我刚刚所说的 函数 这个面板就会自动出现 它让用户有机会 选择是否 愿意进入 锁定会话 如果他们点击“是” 一条横幅会自动出现在顶端 显示“你的 iPad 已被锁定 当你完成考试 或八小时后 会解锁” 五秒之后该横幅消失
现在 iPad 就被锁定了 直到有人运行 或调用解锁函数 在这个 demo App 中 点击红色按钮即为调用解锁函数 接着另一条横幅 会出现在顶端 “你的 iPad 已解锁“ 在点击绿色按钮后红色按钮前 Home 键 被成功禁用 这只是一个非常简单的 应用 只有两个按钮 和两个动作方法 一个调用函数传值 true 进行锁定 另一个传值 false 进行解锁 让我们讨论一下 这里要关注的问题 App 能够自行锁定和解锁 是非常好的 对评价考试而言 在锁定的同时 能够自动禁用其他一些功能 如拼写检查 也非常理想 你作为开发人员 可以进行控制 并且不需要被管理的设备 如果是在学校 学生从家里带来的设备 也可以运行 然而你的应用 还是需要特定的 App 权限 该权限也只对 评价开发人员 开放
那么要如何在 App 中 实现该功能 嗯 首先是要 向 Apple 申请 这一权限 该权限只对评价开发人员 开放 然后你需要构建 一个配置文件 其中包括该权限 并使用配置文件构建你的 App 申请该项权限的方法 是提交一份 技术支持申请 告诉 Apple 你需要教育评价模式的 权限 一旦被授予该权限 你就可以 前往开发人员门户网站 构建包括该项授权的 新配置文件 只有获得授权 你才可以在这里看到该选项 你现在就可以 构建 包含特殊权限的 配置文件了 别忘了这一步 Apple 给予你 授权还是不够的 你需要创建嵌入该授权的 配置文件 并且下载下来
用到 Xcode 中 还有 别忘了 你需要将该项授权 添加到几份不同的配置文件中 仅仅将授权添加到 开发配置文件中 是不够的 你还应该将它添加到 分发配置文件中 如果操作正确 你可以在 Xcode 中看到这个 当你选择了包含授权的配置文件时 你可以点击 小小的信息按钮 查看嵌入的 权限 这就是确认 操作是否正确的方法 如果你可以在这里看到这行神奇的字符 com.apple.developer.edu-assessment-mode 那你的操作 就是正确的 现在你可以真正 使用这项技术 构建应用了
那么何时才能使用呢 当你准备好进入考试时 请调用函数并传值 true 当你准备 退出考试时 调用并传值 false 检查它是否成功运行 是非常重要的 因为在有些情况下 它可能会失败 我要试着 完成该功能 我要试着构建一些 今年 在使用的东西 我很紧张 你应该还记得 之前我向你们展示的 考试应用 这台 iPad 上 有这个考试应用的 安全版本和不安全版本 我将向你们展示 不安全版本 仅仅是用来强调 考试中可能发生的问题 然后我会将不安全版本 变成 安全版本
这是考试的 不安全版本 如果我点击“开始考试” 我可以用一切方法作弊 我可以在内置词典中 查询“加拿大” 哦 首都 就在这里 是“渥太华” 很好 让我们假设 Home 键已经被禁用了 就算禁用了 Home 键 我们还可以做很多其他的事情 如果我在这里输入我的答案 O-T-T 在补全栏的提示中 刚好就包括 正确答案 你可能也想在考试中 禁用该功能 你可能也应该禁用 分享表单 我们不希望学生 把问题发给 其他地方的朋友 这些功能应该 被一并禁用 除了禁用 Home 键之外 我的意思是 现在我还能用 Home 键 这就是第一个问题 所以我将向你们展示 这个特定应用的 代码 然后我们将试着把它 改为安全版本 这个 App 真的 什么都没有 我就是 随手一写 这里有一些 视图控制器 当我们点击“开始考试”按钮时 就会载入这里的一个其他的 视图控制器 现在我们 想要锁定它 然而 你还要完成一些 先决条件 才能开始锁定 首先你必须有 包含正确权限的 配置文件 你必须向 Apple 申请该权限 并且生成 包含它的配置文件 我刚好已经完成了 所以我只需要 在这里更改我的代码签名 使用这个配置文件 这是我之前下载的 它包含神奇的 权限 我可以通过点击这里的 信息按钮验证 你可以看到 com.apple.developer.edu-assessment-mode entitlement 已经被嵌入 这里 非常好 现在我可以使用 这个特殊的权限 编译 App 了 这是第一步 第二步是 因为最近 Xcode 变得非常严谨 需要你 创建权限文件 声明该 App 现在 需要使用的 到底是哪个权限 拥有包含权限的 配置文件 还不够 你还需要一个 真正的权限文件 我已经写了一个 权限文件就是这样的 Key 和值 所以我将添加该文件 这就是这个 demo 比较尴尬的部分 我将 权限文件添加到我的工程文件中 然后前往构建设置 Xcode 中我最喜欢的部分 查看权限的 构建设置 并且告诉 Xcode 我想要使用那个文件 AAC.entitlements
我明确说明了 我的权限文件明确说明了 是的我确实想用 教育评价 好的 我想一切顺利 我想一切顺利 但它仍然是一个不安全的考试 因为没有调用 锁定函数 我要将这部分 加进来 我要在现有的这行 周围添加锁定 好的 在 Apple 我们有一些捷径 这是我刚刚复制进去的 代码块 我们需要请求 UIAccessibilityRequestGuidedAccessSession() 并且将参数 赋值为 true True 就是锁定 现在如果成功锁定了 我们要做一件事 如果失败 我们要做另外的事情 所以我要把这行代码 移进这里的 if 代码块
顺便说一句 如果你在这节会议中没有学到其他东西 至少要记住 command+option+( 可以上移代码行 command+option+) 可以下移代码行 这很重要 看看 多有趣 总之 现在我们把代码移进了 if 语句 所以我们要请求锁定 如果成功 将显示另一个 视图控制器 有锁定就要有解锁 这很重要 有很多方式可以 解锁应用 在这个 极其简单的 App 中 我是这么做的 每一次考试选择主视图 出现在屏幕上时 我们都将进行解锁
这是对该函数的 解锁调用 将 false 传递给函数 意味着请求函数尝试解锁设备 所以当我们离开考试选择界面时 会锁定设备 当我们回到考试选择界面时 又会解锁 我想没有问题了 让我们看看结果
尝试运行一下 有了 所以我将选择 地理考试 并点击“开始考试” 这时锁定代码 被调用 点击“开始考试” 现在它在询问我 询问我用户是否 确认愿意进入 单一 App 模式 直到八小时以后或考试结束 我选择“是” 现在我在地理考试中 你可以看到顶端的横幅 提示我锁定将 在未来的八个小时持续 或在考试结束时解锁 我再也不能在这里 查看任何东西了 这里原先有 “查找”按钮的 我本来可以在 Wikipedia 中查找答案 但它已经被自动关闭了
我的拼写检查 也在这里被 自动关闭了 在考试期间 我们禁用了 iPad 一切有趣的功能 只是为了确保 有一场公平公正的考试 加拿大的首都是渥太华 很好 当我点击“提交”按钮 回到该界面 ASAM 以及我设定其他功能 就被关闭了 现在 Home 键 可以使用 在考试时 Home 键则 不可使用 所有可供作弊的服务 都无法使用 直到我们退出考试 一切又恢复原状 我现在感觉 很有信心 我想试试另一个考试 我觉得我在地理考试中 表现不错 让我们试试另一个 拼写 我拼写很好 所以当我们进入拼写考试时 就锁定住了 这是我要拼写的单词 它是什么 Schnauzer Schnauzer 好的 我能知道“schnauzer”的 定义吗 中小体型的 德国犬 毛发浓密硬直 口鼻处有浓密的胡须 好的我想我可以拼写 这个单词 我能知道 这个单词的例句吗 仔细看那个家伙的 schnauzer 好的 schnauzer 让我看看 笑声 S-C-H-N-A-U. 你应该注意到 我没有得到任何输入建议 Z Z 谢谢 要拼完了 E-R. 铃声 00:28:25.686 --> 00:28:25.956 A:middle 哇好了 我拼对了一个 现在我有点小骄傲了 我想再试一个单词 我想再试一个单词 我还有十分钟 我可以在拼写考试中 再做几个单词 你们觉得呢 让我们在拼写考试中 再试一个单词 Syzygy 呃哦 什么 Syzygy Syzygy Syzygy 请告诉我定义 一种汇合或对立 这没什么帮助 Syzygy. 请给我一个例句 你需要拼写的单词是 “syzygy” 好吧 天哪我不知道 S-Y-Z-Y-G-Y. 铃声 嘿好的 再做一个 再做一个 我感觉很好 再做一个 再做一个 让我们试试这个 Covfefe 再读一遍 Covfefe 掌声 Colfafa 天哪 这个我不知道 能给我一个例句吗 尽管出现了持续的负面 新闻报道 covfefe 好吧 C-O-U-- 铃声 . 哦 我在用加拿大的方法 拼写 C-O-U. 不好意思 总之在考试进行时 我不能点击 Home 键 因为我们请求了 锁定会话 我点击“提交”的时候 会转回另一个界面 现在就能点击 Home 键了 因为考试已经 结束 所以非常简单 谢谢
你们太好了
所以一旦你获得权限 将它添加到 你的应用 是非常简单的 我要提醒你 你需要从 Apple 获得权限 才能进行 锁定和禁用
让我们讨论一些 其他问题 我提过 锁定请求可能会失败 这在 ASAM 模型中可能会发生 你在受监控的设备上使用该模型 在 AAC 模型中也可能发生 在获得权限的情况下 你可以在任意设备上使用该模型 锁定的请求可能会失败 所以你的确应该检查 参数 在 ASAM 中请求可能会因为 设备没有被监控 数据包标识符没有正确设置 而失败 换句话说 如果设备没有针对考试进行正确管理 ASAM 请求
将会失败 在 AAC 中请求可能会因为 你的 App 没有嵌入权限 而失败
而在这两种情况下 如果用户在 被询问是否想要锁定的面板上 点击了“否”按钮 请求都会失败 但是有点奇怪的是 如果设备已经被锁定 请求还是会失败 这个有点奇怪 如果你连续进行了两次 锁定请求 第一次会成功 设备被锁定 如果你再次要求锁定 第二次请求会失败 但你的设备还是在锁定状态
所以你在设置 评价考试应用时 要格外小心 包括禁用 字典和 拼写检查在内的所有限制 只有当你的 App 成功调用 UIRequestGuidedAccessSession() 函数时 才会生效 如果你的设备因为 其他原因被锁定 这些限制将不会生效 所以进行检查 是良策 在尝试锁定设备之前 检查它是否 已经被锁定 因为如果它已经被锁定 并且不是你做的 将会发生一些问题 这个场景很奇怪 可能有人走了过来 点击三次 Home 键 开启了“引导式访问” 如果他们这么做了 限制条件将无法 正确生效 因此进行检查 是非常重要的 这里是一种方法 你可以在 App 启动时 进行检查 我们建议你在 App 启动后 等待两秒 因为锁定所有东西 需要花费一定时间 但你可以在 App 启动后检查 使用 UIAccessibilityIsGuidedAccessEnabled() 函数 如果你在启动后 立即锁定 你的考试环境 会出现一些问题 你不应该 立即锁定 你应该在此时立即 停止考试 不要继续进行
考试 同样的 在试图调用锁定函数前 你也需要进行考试 你应该检查 UIAccessibilityIsGuidedAccessEnabled() 的值为 false 然后再试图锁定 你需要确认 在调用锁定函数之前的 状态是正确的 这也不仅能够 锁定设备 还能让限制条件生效 标准化考试 还有一个需要考虑的问题 可能在考试开始前后 清理粘贴板 是一个好主意 AAC 会自动禁用 用于分享到其他设备的 通用剪贴板 但你需要在考试开始时 清理系统内置的粘贴板 这样孩子就不能复制笔记中的内容 再启动 App 了 你也需要清理粘贴出来的内容 你可能希望 在退出考试时一并清理 这样学生就无法拷贝题目 在其他地方查看了 要实现 非常简单 你只需要将 通用粘贴板中的项目 指向空数组
你可能也会考虑 在评价考试 App 中 禁用第三方键盘 第三方键盘是 App 扩展 且并不会被 AAC 屏蔽 你可能会有类似这样的应用 学生会安装 其他的键盘 有一些键盘确实 在键盘内提供 搜索功能 你可以在键盘里 搜索加拿大的首都 并且得到答案 这不是一个适合考试 使用的键盘 作为评价测试应用的 开发人员 你可以在应用委托中 实现这一功能 根据需要 允许使用或禁用 特定的扩展 我建议最好 全部禁用 特别是键盘 在标准化考试 App 中禁用 所有扩展 记住 目的是 在考试期间 移除 iPad 的所有乐趣功能 但在考试结束之后 还是要恢复这些乐趣功能 让我再次复习 两种技术的区别 因为在软件上 它们几乎是一样的 你要调用相同的函数 UIAccessibilityRequestGuidedAccessSession() 但是效果是 不同的 取决于你的设备和 App 是如何设置的 代码相同 你要调用该函数 在每个场景中 设备都被锁定了 记住尽管在 ASAM 中 我们必须使用 受到管理和监控的设备 在 AAC 中 我们可以使用 任何设备 只要你的 App 拥有权限
但最大的区别在于 AAC 在锁定会话期间 也锁定了 很多其他功能 所以这是 作为评价系统开发人员 想要使用的技术 锁定应用 其他开发人员会发现 ASAM 满足他们的需求 但 AAC 是为评价系统开发人员 特制的 我们讨论了锁定 App 的 四种方法 “引导式访问”非常有趣 可以在家中使用 将你的孩子锁在 海绵宝宝应用中 这样他们就不会 看你的邮件 对用户来说 操作非常简单 适用于任何设备的 任何 App 单一 App 模式适合自助服务 但需要管理员 推送命令 到一系列 受管理的设备上 然后它们就会被 几乎永久的所锁在某个应用里 ASAM 和 AAC 的 软件函数相同 但效果不同 取决于设置 不同的效果取决于 你的 App 是否有权限 和设备 是否受管理
因此本节会议 有很多相关会议 我希望你们喜欢 所有的相关会议中 我喜欢第二个 介绍 HEIF 和 HVAC 的 我觉得那节会议 很不错 哦我读错了 HEIF 和 HEVC 我们有很多评价考试开发人员 将交付网络内容 作为应用的一部分 因此我认为 对使用的人来说 这些是特别相关的会议 要了解更多信息 包括一个 展示实现过程的 样例应用 请查看 会议 716 的网站
非常感谢 谢谢大家的到来 希望你们本周过得愉快 掌声 谢谢大家
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。