Подключение и методы
Для запуска SDK необходимы три параметра: serverOrigin, integrationName и secret для подписи JWT. Получить их можно у Службы заботы Экзамус, либо через представителя.
Необходимо сгенерировать JWT на стороне LMS. Этот токен должен содержать ссылку на тест и другую информацию о тестировании и настройках прокторинга (читайте статью «Генерация JWT»).
Подключение SDK
Использование сборки в виде ES-модуля
Большинство современных браузеров поддерживают ES-модули, поэтому можно подключать SDK с сервера как нативный ES-модуль:
<script type="module">
import Proctoring from 'https://sdk.examus.net/stable/proctoring.js'
const session = Proctoring({
supportChat: true
});
// ...
</script>Обратите внимание, что используется <script type="module">, а URL указывает на сборку в виде ES-модуля: https://sdk.examus.net/stable/proctoring.js.
API
Proctoring(options)
Функция-конструктор. Создает экземпляр приложения. Аргументом принимает параметры, для тонкой настройки (читайте статью Настройка).
Type
interface StartParams {
serverOrigin: string
integrationName: string
jwt: string
}
interface ProctoringInstance {
start: (startParams: StartParams) => Promise<void>
stop: () => Promise<void>
resume: () => Promise<void>
// Методы жизненного цикла:
onAppStart: (handler: (session?: Session) => void) => void
onProctoringStart: (handler: () => void) => void
onExamStart: (handler: (examURL: string) => void) => void
onExamStop: (handler: () => void) => void
onVideoUploaded: (handler: () => void) => void
onProctoringStop: (handler: (leaveURL?: string) => void) => void
onAppStop: (handler: () => void) => void
}Пример
const session = Proctoring({
supportChat: true
});start(startParams)
Запускает интерфейс прокторинга и возвращает Promise, который резолвится после полного монтирования интерфейса в DOM.
Пример
session.start({serverOrigin, integrationName, jwt})
.then(() => {
// Здесь можно обработать успешный запуск, например:
// console.log('Proctoring UI mounted successfully');
})
.catch((error) => {
// Здесь можно обработать ошибки, если запуск не удался.
// console.error('Proctoring failed to start:', error);
});resume()
Позволяет приложению попытаться восстановить сессию после перезагрузки страницы.
stop()
Отправляет на сервер сообщение о завершении тестирования, а после подтверждения со стороны сервера завершает прокторинг.
События жизненного цикла
Экземпляр приложения имеет методы для подписки на события жизненного цикла. Каждый из них принимает в качестве аргумента функцию-обработчик. С их помощью можно контролировать интерфейс тестирования: например, скрывать вопросы до полного запуска прокторинга или показывать страницу с результатами после его завершения.
onAppStart(callback)
Вызывает callback при запуске приложения. В callback передаётся объект сессии, если сессия найдена и все еще актуальна.
Обратите внимание: Это событие и onAppStop() вызываются каждый раз, когда SDK монтирует или размонтирует интерфейс, включая экраны ошибок, часть из которых не предполагают дальнейшего прохождения тестирования. Соответственно, существуют сценарии, когда будут вызваны только эти два события, а события прокторинга и тестирования будут пропущены.
Пример
let sessionData
session.onAppStart((data) => sessionData = data)onProctoringStart(callback)
Вызывает callback, когда приложение получило все разрешения, прошло проверки и трансляция видео успешно запущена (как правило, сразу после этапа проверки оборудования). Аргументы в callback не передаются.
onExamStart(callback)
Вызывает callback, когда приложение или проктор разрешает пользователю начать тестирование. Аргументом передаётся ссылка на тестирование.
onExamStop(callback)
Вызывает callback, когда тестирование завершено по той или иной причине (как со стороны пользователя, так и со стороны сервера). Аргументы в callback не передаются. На этом этапе можно скрыть содержимое тестирования, однако, если требуется перенаправление на другую страницу, следует выполнить его по событию onProctoringStop.
onVideoUploaded(callback)
Вызывает callback когда все части видео были отправлены. Аргументы не передаются.
onProctoringStop(callback)
Вызывает callback, когда все данные были отправлены на сервер и все процессы приложения завершены. На этом этапе можно безопасно перенаправлять пользователя на другую страницу или перезагружать текущую. Опционально в callback передается ссылка для перенаправления, указанная в параметрах тестирования или при генерации JWT.
onAppStop(callback)
Вызывает callback при размонтировании интерфейса прокторинга.