Automatic Assessment Configurati
自动评估配置
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 <AutomaticAssessmentConfiguration/AutomaticAssessmentConfiguration.h>
实例化
实例
开始评估会话
方法
开始方法会立即执行,会话会立即禁用相关功能。但这需要时间,系统设置完毕后法assessmentsessiondibegin会执行,只有收到这个回调之后才证明相关设置已完毕,同时我们需要用一个强引用来引用会话对象否则超出作用域会被回收,并强制停止
结束评估会话
方法
调用方法评估结束之后会调用assessmentSessionDidEnd:代理方法
值得注意的是,当运行期间如果发生错误会调用**assessmentSession:(AEAssessmentSession )session wasInterruptedWithError:(NSError )error回调此时我们应立即调用结束方法,以避免我们的评估遭受影响,理论上我们也应该立即停止我们的评估。
会话提供了一个属性active以用来判断当前会话是否是活跃状态
AEAssessmentConfiguration
属性说明,全是Bool
访问性:
allowsAccessibilitySpeech 是否允许语音相关功能(朗读等辅助)
allowsDictation 是否允许听写
打字帮助:
allowsContinuousPathKeyboard 是否允许Slide to Type在评估期间操作
allowsKeyboardShortcuts 是否允许使用快捷键盘
allowsPredictiveKeyboard 是否允许使用键盘预测
allowsPasswordAutoFill 是否允许使用自动填充密码
更正:(枚举)
AEAutocorrectMode (枚举) 可以设置允许设置的一组自动更正功能
allowsSpellCheck 是否允许拼写检查
autocorrectMode 是否允许自动更正
接力:
allowsActivityContinuation 是否允许接力功能