Menus

2. Criar um arquivo com os menus do aplicativo

428 views 15/12/2017 09/05/2019 admin 1

A forma de definir os menus em um aplicativo é através de um arquivo de configuração no formato JSON. A forma mais rápida e prática para criar este arquivo é efetuar o download de um arquivo que já existe e usá-lo como modelo.

Nesta etapa você criar o arquivo de configuração a partir de um arquivo existente.

Passo a passo:

  1. Acesse o menu Tecnologia > Customização > Aplicativos;
  2. Expanda o aplicativo “ERP | Gestão Empresarial”. Caso este não exista, pode ser outro aplicativo qualquer;
  3. Copie e acesse a URL de um dos arquivos de configuração do aplicativo expandido, por exemplo, “http://platform.senior.com.br/modulos/erp.json”;
  4. Copie o conteúdo do arquivo e cole em um novo arquivo no seu computador, dando o nome do novo arquivo de “modulo-favoritos-config.json”;
  5. Edite o arquivo recém criado;
  6. Informe o valor “res://senior.com.br/menu/custom/menu/site-senior” em “id”. Indicando uma identificação única para este menu;
  7. Informe o valor “Site da Senior” em “label”. Este será o texto exibido no menu;
  8. Informe o valor “fa-globe” em “itemIcon”; Este será o ícone exibido junto ao texto no menu;
  9. Informe o valor “http://www.senior.com.br” em “path” “menuId”. Este é o endereço que o menu irá direcionar o usuário ao clicar;
  10. Informe o valor “NewTab” em “category”, indicando para abrir em nova aba. Outros valores possíveis são Boxlet/Dashboard/CurrentTab/NewTab/NewWindow/DesktopNative;
  11. O arquivo deve ficar como a imagem a seguir:
  12. Salve o arquivo.

Compartilhamento de credenciais

É possível configurar para que a plataforma compartilhe os dados de credenciais (token) com a aplicação que está sendo aberta. Para isso  é necessário definir o atributo withCredentials como true no config.json da aplicação.

"children": [{
 "label": "Localizador",
 "path": {
 "withCredentials": true,
 "category": "iframe",
 "menuId": "https://d3tfg7xzbvvd1u.cloudfront.net/"
 }
}]

Receber credenciais ao abrir a página em uma nova aba.

Para receber as credenciais em uma nova aba precisamos pegar a informação através do nome da window. O código abaixo apresenta
uma implementação que recebe essas configurações:

/garantimos que estamos recebendo a informação da senior
var PREFIX = "SENIOR_CREDENTIALS";
//se ouver a informação nós lemos ela
if(window.name.indexOf(PREFIX) == 0){
 var data = JSON.parse(window.name.substring(PREFIX.length));
 //irá exibir a seguinte estrutura JSON:
 // {
 // servicesUrl: <URL_DE_SERVIÇO>,
 // token: '<TOKEN>'
 // }
 console.log(data); 
}

Receber credenciais ao abrir a página dentro da plataforma

Quando a página é aberta dentro da plataforma não ocorre um window.open, ou seja, não teremos a informação no window.name para ser recuperada. Nesse caso o portal envia um postMessage com a informação para a aplicação quando ela estiver carregada. A aplicação deve ouvir mensagens enviadas para ela, recebendo assim as credenciais. O código abaixo demonstra uma implementação para essa solução:

//escuta novas mensagens
window.addEventListener('message', function(event) {
 var data = event.data; //recebe a informação
 //irá exibir a seguinte estrutura JSON:
 // {
 // servicesUrl: <URL_DE_SERVIÇO>,
 // token: '<TOKEN>'
 // }
 console.log(data):
});

 

Próxima etapa: Disponibilizar publicamente o arquivo criado.

Este artigo foi útil para você?