Notificações Alerts
Como configurar
Primeira coisa é rodar o check DS para confirmar se não tem nenhum coluna do alerts a ser criada.
Criar um Grupo ou Tópico no Alerts
Antes de enviar de fato é necessário configurar um Grupo ou Tópico no Alerts para enviar mesmo que seja para um usuário, a ideia principal é utilizar essa estrutura de agrupamento.
Se o cliente usar o Alerts vai ter um menu exclusivo Simova Alerts
Criar Usuário
No NFS acesse Simova Alerts > Usuários SimovaAlerts
ao criar um usuário o Tipo Usuário deve ser NFS, se for Externo não vai funcionar, e depois selecionar o usuário.
Se o Grupo já existir é possível selecionar ele na Aba de Associações.
Criar Grupo
No NFS acesse Simova Alerts > Grupo de Usuários Simova Alerts
ao criar o grupo além da associações que tem um item obrigatório é necessário marcar a flag
Notificar Push ao Painel Web igual a verdadeiro.
Se o usuário já existir é possível adicionar na Aba de Associações.
Criar Tópico
No NFS acesse Simova Alerts > Tópicos de envio ao Simova Alerts
ao criar o grupo além da associações que tem um item obrigatório é necessário marcar a flag
Notificar Push ao Painel Web igual a verdadeiro.
Se o Grupo já existir é possível adicionar na Aba de Associações.
Como enviar
Para enviar pelo entry point pode ser enviado para um grupo ou tópico
Grupo
$result = Alerts::sendNotificationToGroup(
'DESCRICAO_GRUPO',
'TITULO',
'CORPO_HTML',
$arrayOptions
);
// Exemplo
$result = Alerts::sendNotificationToGroup(
'TEST_GROUP',
'Teste alerts '.date('d/m/Y H:i:s'),
'<h2>My html body</h2>',
['TYPE_WEB_NOTIFY' => 2, 'NOTIFY_DISPLAY_TIME' => 10]
);
Tópico
$result = Alerts::sendNotificationToTopic(
'TEST_TOPIC',
'TITULO',
'CORPO_HTML',
$arrayOptions
);
// Exemplo
Alerts::sendNotificationToTopic(
'NOTIFICCO',
'Teste alerts '.date('d/m/Y H:i:s'),
'<h2>My html body</h2>',
['TYPE_WEB_NOTIFY' => 2]
);
Parâmetros
TYPE_WEB_NOTIFY
: padrão = 0
É o tipo da notificação web que será exibida, pode ser os seguintes valores:
- 0 : success, vai exibir uma mensagem de sucesso verde
- 1 : warning, vai exibir uma mensagem de atenção laranja/amarelo
- 2 : error, vai exibir uma mensagem de erro vermelha
- 3 : info, vai exibir uma mensagem de informação
Se essa flag não for passada o padrão é success.
NOTIFY_DISPLAY_TIME
: padrão = 3
É o tempo de exibição da notificação, pode acontece de o cliente mesmo ter o desejo de deixar notificações de erros sendo exibidas com maior tempo do que de sucesso para realmente chamar a atenção do usuário do painel.
Se esse parâmetro não for passado o valor padrão é 3.
WebPush
Notificações do navegador, podem ser recebidas fora da página do NFS.
Tabela nfs_web_push_notification
precisa estar devidamente criada (check DS) para armazenar o endereço do navegador e realizar o envio da notificação.
Exemplo notificação windows 11 Alerta visual e sonoro
Exemplo pós-alerta (sessão de notificações não lidas/visualizadas)
A notificação web push enviada para o navegador poderá ser configurada NFS adicionando os seguintes parametros ao envio convencional do Alerts:
Grupo
Alerts::sendNotificationToGroup(
'AL_TRANSPORTES_LTDA',
'Título notificação '.date('d/m/Y H:i:s'),
'<h2>Alerta push</h2>',
['TYPE_WEB_NOTIFY' => 2,
'NOTIFY_DISPLAY_TIME' => 5,
'PUSH' => true, /* opção que habilita o envio */
'PUSH_TITLE' => 'Título',
'PUSH_BODY' => 'Corpo da notificação',
'PUSH_URL' => 'https://www.google.com',
'PUSH_ICON' => './assets/img/webpush/captain_simova.png']
);
Tópico
Alerts::sendNotificationToTopic(
'NOTIFICCO',
'Teste alerts '.date('d/m/Y H:i:s'),
'<h2>My html body</h2>',
['TYPE_WEB_NOTIFY' => 2,
'PUSH' => true, /* opção que habilita o envio */
'PUSH_TITLE' => 'Título',
'PUSH_BODY' => 'Corpo da notificação',
'PUSH_URL' => 'https://www.google.com',
'PUSH_ICON' => './assets/img/webpush/captain_simova.png']
);
- PUSH: Opção que habilita o envio da notificação também para o navegador, o comportamento padrão é mantido e passa a enviar a notificação também para os navegadores.
- PUSH_TITLE: Substitui o título padrão para um texto que pode ser personalizado.
- PUSH_BODY: Substitui o corpo padrão para um texto que pode ser personalizado.
- PUSH_URL: Quando omitida essa propriedade ao clicar na notificação será aberta a rota "/nfs../assets/images/notifications", pode ser configurado "/" para direcionar a Home, ou incluir uma url completa para que seja feito o redirecionamento pra ela.
- PUSH_ICON: Permite incluir um icone a notificação, mantendo o padrão do exemplo pode-se usar uma das imagens disponibilizadas pelo core.
Icons (Web Push Notify):
Ícones disponíveis para notificação (pb = preto e branco), pode receber link externo, precisa ser 192x192px.
- Simova: './assets/img/webpush/simova.png'
- Capitão simova: './assets/img/webpush/captain_simova.png'
- Alerts: './assets/img/webpush/alerts.png'
- SmartOS: './assets/img/webpush/smartos.png' ou './assets/img/webpush/smartos_pb.png'
- Bob Agro: './assets/img/webpush/bobagro.png' ou './assets/img/webpush/bobagro_pb.png'
- Contru Mobil: './assets/img/webpush/construmobil.png' ou './assets/img/webpush/construmobil_pb.png'
Comportamento (Web Push Notify):
Notificações web são enviadas para um determinado dispositivo/browser, o envio é independente de usuário logado NFS.
O navegador do usuário precisa estar com as notificações habilitadas para o domínio para que os dados do endpoint do dispositivo seja salvo e vinculado ao usuário simova.
Com o navegador habilitado a exibir notificações de xxx.simova.cloud, quando o usuário fizer o login, os dados do depoente do dispositivo serão atribuídos ao usuário que fez login, e a partir daí qualquer notificação que esse usuário receber pelo NFS uma notificação push será enviada para esse dispositivo.
A notificação chega independente do usuário estar logado ou não no NFS, estar com o NFS aberto ou não no navegador, porém o browser precisa estar em execução para que a notificação chegue corretamente.
Compartilhamento de dispositivos (Web Push Notify):
Cada usuário NFS só terá um endpoint vinculado ao seu usuário.
O NFS nunca permitirá dois usuários vinculados ao mesmo endpoint (dispositivo), ou seja, se eu logar no google chrome em uma determinada máquina que está com as notificações habilitadas, o endpoint desse dispositivo ficará atrelado ao meu usuário NFS, fazendo com que qualquer notificação enviada para meu usuário NFS chegue nesse dispositivo que acabei de logar e para mais nenhum, se outro usuário logar nesse mesmo dispositivo, também no google chrome, o meu usuário que antes estava vinculado a essa máquina ficará sem nenhum dispositivo vinculado, e o dispositivo passa a estar vinculado ao usuario que fez o login depois.
O mesmo se aplica para browsers, se eu habilitei para receber notificações tanto no chrome quanto no Edge, minhas notificações chegarão no último navegador que eu loguei, abordagem necessária para que não fiquem chegando notificações duplicadas ou triplicadas no mesmo dispositivo.
Uma forma de reduzir problemas, é orientar usuários com relação a máquinas compartilhadas sugerindo que não seja habilitado as notificações web push em navegadores cujo a máquina é compartilhada, o interessante é usar o recurso em dispositivos individuais.
Acesso a Noticações
Vai aparecer um ícone de um sino ao lado do logo da Empresa, onde vai mostrar a quantidade total de mensagens não lidas.
A mensagem ao ser enviada só mostrar uma vez e depois fica no contador até o usuário ler nesse popup ou acessar a tela de Notificações. {.is-warning}
É possível pesquisar pelo título e/ou corpo da mensagem, então se você colocar o horário 18:01:16 vai filtrar por todas as mensagens desse horário ou pelo corpo da mensagem ERROuuu segue a mesma ideia.
Para acessar a Tela de Notificações é possíl ir em ver todas no popup que é exibido ao clicar no sino ou clicar no nome do usuário e ir em Notificações.
Acreditamos que seja bom ter um local onde possa ser vista todas as mensagem enviadas, é sempre mostrado primeiro as Não lida e ao clicar é exibido seu conteúdo com outras informações como o horário de Envio e Leitura.