Aplicações Ricas para Internet

Notifications API

notifications Notifications API

Sobre

  • notifications_active Notificações

    no nível do sistema
  • devices_other Aparência variável

    de acordo com o dispositivo
  • settings Permissão do usuário

    necessária
Foto do integrante Luiz Carlos
notifications Notifications API
Foto do integrante Luiz Carlos
notifications Notifications API

Compatibilidade com os navegadores desktop

  • Chrome 22
  • Edge 14
  • Firefox 22
  • Internet Explorer Não
  • Opera 25
  • Safari 7
Foto do integrante Luiz Carlos
notifications Notifications API

Compatibilidade com os navegadores mobile

  • Chrome Sim
  • WebView Android Não
  • Firefox 22
  • Samsung Internet Sim
  • Opera Sim
  • Safari Não
Foto do integrante Luiz Carlos
notifications Notifications API

Como usar

  1. check

    1. Checar compatibilidade

  2. sentiment_satisfied

    2. Pedir permissão do usuário

  3. send

    3. Enviar notificação

  4. clear

    4. Fechar notificações

Foto do integrante Luiz Fernando
notifications Notifications API
Pomeranian working on an iPad
function checarCompatibilidade() {
  if (!("Notification" in window)) {
    alert("Este navegador não é compatível com a API de Notificações");
  } else {
    alert("Este navegador é compatível com a API de Notificações");
    // Continuar desenvolvimento
  }
}
Foto do integrante Luiz Fernando
notifications Notifications API
Pomeranian working on an iPad
function pedirPermissao() {
  Notification.requestPermission().then( () => {
      switch (Notification.permission) {
      case 'denied':
        // O usuário se recusa a receber notificações
        alert('denied');
        break;
      case 'granted':
        // O usuário aceita receber notificações
        alert('granted');
        break;
      case 'default':
        // A resposta do usuário é desconhecida e por isso o navegador irá presumir que a permissão não foi concedida
        break;
    }
  });
}
Foto do integrante Luiz Fernando
notifications Notifications API
Pomeranian working on an iPad
function enviarNotificacao() {
  let notificacao = new Notification('DevDog', 
  {
    body: 'Au au',
    icon: './img/pet.png',
    vibrate: [200, 100, 200],
    requireInteraction: true
  });
}
              
Foto do integrante Luiz Fernando
notifications Notifications API
Pomeranian working on an iPad
function fecharNotificacao() {
  const notificacao = new Notification('DevDog', {body: 'Au au', icon: './img/pet.png', vibrate: [200, 100, 200], requireInteraction: true});

  // Se a página for recarregada, então feche a notificação
  window.onunload = () => {
    notificacao.close();
  }

  // Se o usuário deixar de visualizar a página, então feche a notificação
  document.addEventListener('visibilitychange', () => {
    if (document.visibilityState === 'hidden') {
      notificacao.close();
    }}); 
}
              
Foto do integrante Luiz Fernando
notifications Notifications API

Especificações

    Constructor

  • Notification()

    Cria uma nova instância do objeto Notification.

  • Propriedades estáticas

  • Notification.permission

    Retorna a permissão atual para exibir notificações.

  • Propriedades da instância

  • Notification.title, Notification.body, etc.

    Retorna propriedades de instâncias do objeto Notification.
Foto do integrante Renan Angusto
notifications Notifications API

Especificações

    Métodos estáticos

  • Notification.requestPermission()

    Solicita a permissão do usuário para exibir notificações.

  • Metódos de instância

  • Notification.close()

    Programaticamente fecha uma notificação.

  • Manipuladores de evento

  • Notification.onshow, onclick, onclose e onerror.

    O manipulador para o evento é acionado cada vez que o usuário interage com a notificação.
Foto do integrante Renan Angusto
notifications Notifications API

Exemplo

function notificarProva() {
  const prova = new Notification('Aplicações Ricas para Internet', {body: 'Prova amanhã', icon: './img/school.png', vibrate: [200, 100, 200], requireInteraction: true});

  prova.onshow = () => {
    ar = document.getElementById('avisoRecebimento');
    ar.style.visibility = 'visible';
  };

  prova.onclick = () => {
    window.open('https://senacsp.blackboard.com/');
  }

  prova.onerror = () => {
    alert('Erro ao tentar exibir a notificação!');
  }

  prova.onclose = () => {
    alert('Cuidado para não se esquecer da prova!');
  }
}
              
Chat

Professor enviou:

Prova surpresa amanhã!

Renan recebeu a notificação.

Foto do integrante Renan Angusto

Aplicações Ricas para Internet

Notifications API


Dúvidas?