Automatic Assessment Configuration

自动评估配置

Automatic Assessment Configuration

使设备进入单应用mode,防止学生在考试时访问特定的系统功能。

准备工作:

1、在developer上填写 Automatic Assessment Configuration Entitlement Request

2、在entitlements配置 com.apple.developer.automatic-assessment-configuration 为 true

概览:

使用该框架可创建一个限制系统功能访问的评估会话,该会话阻止用户使用设备使用当前应用提供的信息以外的信息(具体下方举例),或从当前应用内分发敏感信息,这有访问限制可协助保护评估(考试)的可靠性。

我们需要通过AEAssessmentSession对象来控制开始和结束自动评估会话。

这个会话可以阻止访问桌面级应用例如:

Dock

应用程序菜单栏

控制中心

通知中心

当前空间以外的空间

其他App

同时

此外:

防止屏幕录制和截屏

siri

停止媒体播放

仅允许我们程序访问网络

禁用设备之间接力

当启动和停止,清除粘贴板缓冲区

AEAssessmentSession使用方法:

系统在所有进程中同时只允许一个会话运行,先运行的会在未结束之前不允许其他会话的开始。

创建一个会话需要传入一个config对象(initWithConfiguration:)并且可以设置一个代理的回调(AEAssessmentSessionDelegate)

导入框架#import

实例化


实例

开始评估会话


方法

开始方法会立即执行,会话会立即禁用相关功能。但这需要时间,系统设置完毕后法assessmentsessiondibegin会执行,只有收到这个回调之后才证明相关设置已完毕,同时我们需要用一个强引用来引用会话对象否则超出作用域会被回收,并强制停止

结束评估会话


方法

调用方法评估结束之后会调用assessmentSessionDidEnd:代理方法

值得注意的是,当运行期间如果发生错误会调用**assessmentSession:(AEAssessmentSession )session wasInterruptedWithError:(NSError )error回调此时我们应立即调用结束方法,以避免我们的评估遭受影响,理论上我们也应该立即停止我们的评估。

image.png

会话提供了一个属性active以用来判断当前会话是否是活跃状态

AEAssessmentConfiguration

属性说明,全是Bool

访问性:

allowsAccessibilitySpeech 是否允许语音相关功能(朗读等辅助)

allowsDictation 是否允许听写

打字帮助:

allowsContinuousPathKeyboard 是否允许Slide to Type在评估期间操作

allowsKeyboardShortcuts 是否允许使用快捷键盘

allowsPredictiveKeyboard 是否允许使用键盘预测

allowsPasswordAutoFill 是否允许使用自动填充密码

更正:(枚举)

AEAutocorrectMode (枚举) 可以设置允许设置的一组自动更正功能

allowsSpellCheck 是否允许拼写检查

autocorrectMode 是否允许自动更正

接力:

allowsActivityContinuation 是否允许接力功能

你可能感兴趣的:(Automatic Assessment Configuration)