Para abrir links em um navegador externo mantendo o envio de parâmetros de contexto (como a Coligada), a instituição deve seguir os passos abaixo:
No arquivo Menu.xml, a tag <ExternalURL> deve apontar para o diretório de customização do servidor: No servidor, acesse a pasta Educamobile\Custom e crie um arquivo chamado index.html. Este arquivo será responsável por capturar os dados da sessão e redirecionar o usuário. O script abaixo deve ser inserido no arquivo index.html. Ele realiza a ponte entre o Educa Mobile e a sua aplicação externa:
| HTML |
|---|
// 1. Captura os parâmetros da URL atual (como o host)
const params = new URLSearchParams(window.location.search);
const host = params.get('h');
// 2. Define a URL de destino desejada (incluindo a tag para abrir no navegador)
const urlDestino = "https://www.totvs.com/?openInbrowser";
// 3. Consulta a API do Educa Mobile para recuperar os dados da sessão do usuário
const xhr = new XMLHttpRequest();
xhr.open('GET', 'http://ENDERECO_SERVIDOR/EducaMobile/EduSessao/GetSession');
xhr.responseType = 'json';
xhr.onload = function () {
if (xhr.status === 200) {
// Concatena a URL de destino com os dados de contexto (ex: CodColigada)
const urlFinal = `${urlDestino}&codcoligada=${xhr.response.Contexto.CodColigada}`;
// Verifica se o acesso é via aplicativo Meu eduCONNECT
if (window.NavigationChannel) {
// Comando para o app abrir o navegador externo nativo
window.NavigationChannel.postMessage(urlFinal);
} else {
// Abertura padrão para navegadores web
window.open(urlFinal, '_blank');
}
}
};
xhr.send(); |
|