Partilhar via


Faça uma API JavaScript de Teste

O Take a Test é uma aplicação UWP baseada no navegador que disponibiliza avaliações online bloqueadas para testes de alto risco, permitindo aos educadores focar-se no conteúdo da avaliação em vez de como proporcionar um ambiente de teste seguro. Para isso, utiliza uma API JavaScript que qualquer aplicação web pode utilizar. A API Take-a-test suporta o padrão SBAC browser API para testes common core de alto risco.

Consulte a referência técnica da aplicação Take a Test para mais informações sobre a própria aplicação. Para ajuda com resolução de problemas, consulte Troubleshoot Microsoft Take a Test com o visualizador de eventos.

Documentação de referência

As APIs do Take a Test encontram-se nos seguintes namespaces. Note que todas as APIs dependem de um objeto global SecureBrowser .

Namespace Description
Espaço de nomes de segurança Contém APIs que permitem bloquear o dispositivo para testes e impor um ambiente de testes.

Espaço de nomes de segurança

O espaço de nomes de segurança permite-lhe bloquear o dispositivo, verificar a lista de processos do utilizador e do sistema, obter endereços MAC e IP, e limpar recursos web em cache.

Método Description
Bloqueio Bloqueia o dispositivo para testes.
isEnvironmentSecure Determina se o contexto de bloqueio ainda é aplicado ao dispositivo.
getDeviceInfo Obtém detalhes sobre a plataforma onde a aplicação de teste está a correr.
examineProcesseList Obtém a lista de processos de utilizador e sistema em execução.
fechar Fecha o navegador e desbloqueia o dispositivo.
getPermissiveMode Verifica se o modo permissivo está ligado ou desligado.
definirModoPermissivo Ativa ou desativa o modo permissivo.
Quadro de Transferência vazio Limpa a prancheta do sistema.
getMACAddress Obtém a lista de endereços MAC do dispositivo.
getStartTime Obtém a hora em que a aplicação de testes foi iniciada.
getCapability Consulta se uma funcionalidade está ativada ou desativada.
setCapacidade Ativa ou desativa a capacidade especificada.
isRemoteSession Verifica se a sessão atual está iniciada remotamente.
isVMSession Verifica se a sessão atual está a correr numa máquina virtual.

Bloqueio

Bloqueia o dispositivo. Também é usado para desbloquear o dispositivo. A aplicação web de testes irá invocar esta chamada antes de permitir que os alunos comecem a testar. O implementador é obrigado a tomar todas as ações necessárias para proteger o ambiente de testes. As medidas tomadas para proteger o ambiente são específicas do dispositivo e, por exemplo, incluem aspetos como desativar capturas de ecrã, desativar o chat de voz em modo seguro, limpar a prancheta do sistema, entrar em modo quiosque, desativar os Spaces em dispositivos OSX 10.7+, etc. A aplicação de testes irá ativar o bloqueio antes do início da avaliação e desativará o bloqueio quando o aluno tiver concluído a avaliação e estiver fora do teste seguro.

Syntax
void SecureBrowser.security.lockDown(Boolean enable, Function onSuccess, Function onError);

Parâmetros

  • enable - true para executar a aplicação Take-a-Test acima do ecrã de bloqueio e aplicar as políticas discutidas na referência técnica da aplicação Take-a-Test. false para de executar o Take-a-Test acima do ecrã de bloqueio e fecha-o a menos que a aplicação não esteja bloqueada; nesse caso, não há efeito.
  • onSuccess - [opcional] A função para chamar após o confinamento ter sido ativada ou desativada com sucesso. Deve ser da forma Function(Boolean currentlockdownstate).
  • onError - [opcional] A função para chamar caso a operação de bloqueio falhasse. Deve ser da forma Function(Boolean currentlockdownstate).

Requisitos
Windows 10, versão 1709 ou posterior


isEnvironmentSecure

Determina se o contexto de bloqueio ainda é aplicado ao dispositivo. A aplicação web de testes irá invocar isto antes de permitir que os alunos comecem a testar e, periodicamente, quando estiver dentro do teste.

Syntax
void SecureBrowser.security.isEnvironmentSecure(Function callback);

Parâmetros

  • callback - A função a chamar quando esta função termina. Deve ser da forma Function(String state) onde state é uma cadeia JSON contendo dois campos. O primeiro é o secure campo, que só mostrará true se todos os bloqueios necessários estiverem ativados (ou funcionalidades desativadas) para ativar um ambiente de testes seguro, e nenhum destes foi comprometido desde que a aplicação entrou em modo de bloqueio. O outro campo, messageKey, inclui outros detalhes ou informações específicas do fornecedor. A intenção aqui é permitir que os fornecedores coloquem informação adicional que complemente a bandeira booleana secure :
{
    'secure' : "true/false",
    'messageKey' : "some message"
}

Requisitos
Windows 10, versão 1709 ou mais recente


getDeviceInfo

Obtém detalhes sobre a plataforma onde a aplicação de teste está a correr. Isto é usado para aumentar qualquer informação que fosse discernível do agente de utilizador.

Syntax
void SecureBrowser.security.getDeviceInfo(Function callback);

Parâmetros

  • callback - A função a chamar quando esta função termina. Deve ser da forma Function(String infoObj) onde infoObj é uma cadeia JSON contendo vários campos. Os seguintes campos devem ser suportados:
    • os representa o tipo de sistema operativo (por exemplo: Windows, macOS, Linux, iOS, Android, etc.)
    • name representa o nome da versão do sistema operativo, se existir (por exemplo: Sierra, Ubuntu).
    • version representa a versão do sistema operativo (por exemplo: 10.1, 10 Pro, etc.)
    • brand representa a marca segura do navegador (por exemplo: OAKS, CA, SmarterApp, etc.)
    • model representa o modelo de dispositivo apenas para dispositivos móveis; Nulo/Não Usado para navegadores de ambiente de trabalho.

Requisitos
Windows 10, versão 1709 ou mais recente


examineProcesseList

Obtém a lista de todos os processos a correr na máquina cliente pertencente ao utilizador. A aplicação de testes invocará esta lista para examinar a lista e compará-la com uma lista de processos que foram considerados rejeitados durante o ciclo de testes. Esta chamada deve ser invocada tanto no início de uma avaliação como periodicamente enquanto o aluno está a fazer a avaliação. Se for detetado um processo na lista de bloqueio, a avaliação deve ser interrompida para preservar a integridade do teste.

Syntax
void SecureBrowser.security.examineProcessList(String[] denylistedProcessList, Function callback);

Parâmetros

  • denylistedProcessList - A lista de processos que a aplicação de testes colocou na lista de negação.
    callback - A função a invocar assim que os processos ativos forem encontrados. Deve estar na forma: Function(String foundDenylistedProcesses) onde foundDenylistedProcesses está na forma: "['process1.exe','process2.exe','processEtc.exe']". Ficará vazio se não forem encontrados processos na lista de recusas. Se for nulo, isto indica que ocorreu um erro na chamada original da função.

Observações A lista não inclui processos do sistema.

Requisitos
Windows 10, versão 1709 ou mais recente


fechar

Fecha o navegador e desbloqueia o dispositivo. A aplicação de teste deve invocar isto quando o utilizador optar por sair do navegador.

Syntax
void SecureBrowser.security.close(restart);

Parâmetros

  • restart - Este parâmetro é ignorado, mas deve ser fornecido.

Observações No Windows 10, versão 1607, o dispositivo tem de ser bloqueado inicialmente. Em versões posteriores, este método fecha o navegador independentemente de o dispositivo estar bloqueado ou não.

Requisitos
Windows 10, versão 1709 ou mais recente


getPermissiveMode

A aplicação web de teste deve invocar isto para determinar se o modo permissivo está ligado ou desligado. No modo permissivo, espera-se que um navegador flexibilize alguns dos seus rigorosos ganchos de segurança para permitir que a tecnologia assistiva funcione com o navegador seguro. Por exemplo, navegadores que impedem agressivamente que outras interfaces de aplicação se apresentem por cima deles podem querer relaxar isto quando em modo permissivo.

Syntax
void SecureBrowser.security.getPermissiveMode(Function callback)

Parâmetros

  • callback - A função a invocar quando esta chamada termina. Deve estar na forma: Function(Boolean permissiveMode) onde permissiveMode indica se o navegador está atualmente em modo permissivo. Se for indefinido ou nulo, ocorreu um erro na operação get.

Requisitos
Windows 10, versão 1709 ou mais recente


definirModoPermissivo

A aplicação web de teste deve invocar isto para ativar ou desativar o modo permissivo. No modo permissivo, espera-se que um navegador flexibilize alguns dos seus rigorosos ganchos de segurança para permitir que a tecnologia assistiva funcione com o navegador seguro. Por exemplo, navegadores que impedem agressivamente que outras interfaces de aplicação se apresentem por cima deles podem querer relaxar isto quando em modo permissivo.

Syntax
void SecureBrowser.security.setPermissiveMode(Boolean enable, Function callback)

Parâmetros

  • enable - O valor booleano que indica o estado pretendido do modo permissivo.
  • callback - A função a invocar quando esta chamada termina. Deve estar na forma: Function(Boolean permissiveMode) onde permissiveMode indica se o navegador está atualmente em modo permissivo. Se for indefinido ou nulo, ocorreu um erro na operação do conjunto de dados.

Requisitos
Windows 10, versão 1709 ou mais recente


Clipboard vazio

Limpa a prancheta do sistema. A aplicação de teste deve invocar isto para forçar o apagamento de quaisquer dados que possam estar armazenados na prancheta do sistema. A função LockDown também executa esta operação.

Syntax
void SecureBrowser.security.emptyClipBoard();

Requisitos
Windows 10, versão 1709 ou mais recente


getMACAddress

Obtém a lista de endereços MAC do dispositivo. A aplicação de testes deve invocar isto para ajudar no diagnóstico.

Syntax
void SecureBrowser.security.getMACAddress(Function callback);

Parâmetros

  • callback - A função a invocar quando esta chamada termina. Deve estar na forma: Function(String addressArray) onde addressArray está na forma: "['00:11:22:33:44:55','etc']".

Remarks
É difícil confiar nos endereços IP de origem para distinguir entre as máquinas dos utilizadores finais dentro dos servidores de teste porque firewalls/NATs/Proxies são frequentemente usados nas escolas. Os endereços MAC permitem à aplicação distinguir máquinas clientes finais atrás de um firewall comum para fins de diagnóstico.

Requisitos
Windows 10, versão 1709 ou mais recente


getStartTime

Obtém a hora em que a aplicação de testes foi iniciada.

Syntax
DateTime SecureBrowser.security.getStartTime();

Regresso
Um objeto DateTime a indicar a hora em que a aplicação de testes foi iniciada.

Requisitos
Windows 10, versão 1709 ou mais recente


getCapability

Consulta se uma funcionalidade está ativada ou desativada.

Syntax
Object SecureBrowser.security.getCapability(String feature)

Parâmetros

feature - A string para determinar qual a capacidade a consultar. As cadeias de capacidades válidas são "screenMonitoring", "printing" e "textSuggestions" (insensível a maiúsculas).

Valor de Retorno
Esta função devolve ou um Objeto JavaScript ou literal com a forma: {<feature>:true|false}. verdadeiro se a capacidade consultada estiver ativada, falso se a capacidade não estiver ativada ou a cadeia de capacidades for inválida.

Requisitos Windows 10, versão 1703 ou mais recente


setCapability

Ativa ou desativa uma funcionalidade específica no navegador.

Syntax
void SecureBrowser.security.setCapability(String feature, String value, Function onSuccess, Function onError)

Parâmetros

  • feature - A cadeia para determinar qual a capacidade a definir. As cadeias de capacidades válidas são "screenMonitoring", "printing" e "textSuggestions" (indiferentes a maiúsculas).
  • value - A configuração pretendida para o recurso. Deve ser "true" ou "false".
  • onSuccess - [opcional] A função a invocar após a operação de definição ter sido concluída com sucesso. Deve ser da forma Function(String jsonValue) onde jsonValue está na forma: {<feature>:true|false|undefined}.
  • onError - [opcional] A função que deve ser chamada se a operação de definição falhar. Deve ser da forma Function(String jsonValue) onde jsonValue está na forma: {<feature>:true|false|undefined}.

Remarks
Se a funcionalidade alvo for desconhecida para o navegador, esta função passará um valor de undefined para a função de callback.

Requisitos Windows 10, versão 1703 ou mais recente


isRemoteSession

Verifica se a sessão atual está iniciada remotamente.

Syntax
Boolean SecureBrowser.security.isRemoteSession();

Valor de retorno
verdadeiro se a sessão atual for remota, caso contrário, falso.

Requisitos
Windows 10, versão 1709 ou posterior


isVMSession

Verifica se a sessão atual está a correr dentro de uma máquina virtual.

Syntax
Boolean SecureBrowser.security.isVMSession();

Valor de retorno
true se a sessão atual estiver a correr numa máquina virtual, caso contrário, false.

Remarks
Esta verificação de API só pode detetar sessões de VM que estejam a correr em certos hipervisores que implementem as APIs apropriadas

Requisitos
Windows 10, versão 1709 ou posterior