Esta tradução está incompleta. Por favor, ajude a traduzir este artigo.

Esta é uma tecnologia experimental
Verifique a tabela de compatibilidade entre Navegadores cuidadosamente antes de usar essa funcionalidade em produção.

A PushManagerinterface da API Push fornece uma maneira de receber notificações de servidores de terceiros, bem como solicitar URLs para notificações push.

Essa interface é acessada através da propriedade ServiceWorkerRegistration.pushManager.

Nota : Esta interface substitui a funcionalidade anteriormente oferecida pela interface obsoleta PushRegistrationManager.

Propriedades

PushManager.supportedContentEncodings
Retorna uma série de codificações de conteúdo suportadas que podem ser usadas para criptografar a carga útil de uma mensagem push.

Métodos

PushManager.getSubscription ()
Recupera uma assinatura de envio existente. Retorna uma Promise que resolve um objeto PushSubscription contendo detalhes de uma assinatura existente. Se não existe uma subscrição existente, isso resolve um nullvalor.
PushManager.permissionState ()
Retorna uma Promise que resolve para o estado de permissão do atual PushManager, que será um dos 'granted', 'denied'ou 'prompt'.
PushManager.subscribe ()
Assine um serviço push. Retorna uma Promise que resolve um objeto PushSubscription contendo detalhes de uma inscrição de envio. Uma nova assinatura de envio é criada se o trabalhador de serviço atual não tiver uma assinatura existente.

Métodos depreciados

PushManager.hasPermission ()
Retorna uma Promise que resolve para o PushPermissionStatusdo webapp requerente, que será um dos granted, deniedou default. Substituído por PushManager.permissionState ().
PushManager.register ()
Assina uma assinatura de envio. Substituído por PushManager.subscribe ().
PushManager.registrations ()
Recupera as assinaturas de envio existentes. Substituído por PushManager.getSubscription ().
PushManager.unregister ()
Anula e exclui um ponto final de assinatura especificado. Na API atualizada, uma assinatura não está registrada chamando o método PushSubscription.unsubscribe ().

Exemplo

this.onpush = function(event) {
  console.log(event.data);
  // From here we can write the data to IndexedDB, send it to any open
  // windows, display a notification, etc.
}

navigator.serviceWorker.register('serviceworker.js').then(
  function(serviceWorkerRegistration) {
    serviceWorkerRegistration.pushManager.subscribe().then(
      function(pushSubscription) {
        console.log(pushSubscription.subscriptionId);
        console.log(pushSubscription.endpoint);
        // The push subscription details needed by the application
        // server are now available, and can be sent to it using,
        // for example, an XMLHttpRequest.
      }, function(error) {
        // During development it often helps to log errors to the
        // console. In a production environment it might make sense to
        // also report information about errors back to the
        // application server.
        console.log(error);
      }
    );
  });

Especificações

Especificação Status Comentário
Push API
The definition of 'PushManager' in that specification.
Rascunho atual Definição inicial.

Compatibilidade do navegador

Estamos convertendo nossos dados de compatibilidade para o formato JSON. Esta tabela de compatibilidade ainda usa o formato antigo, pois ainda não convertemos os dados que ela contém. Descubra como você pode ajudar!

Característica Chrome Edge Firefox (Gecko) Internet Explorer Ópera Safari (WebKit)
Suporte básico 42 (Yes) 44.0 (44.0) [1] Não suportado 29 Não suportado
supportedContentEncodings propriedade 60 (Yes) ? Não suportado 47 Não suportado
Característica Android Webview Chrome para Android Edge Firefox Mobile (Gecko) SO Firefox IE Mobile Opera Mobile Safari Mobile
Suporte básico 42 42 (Yes) 48.0 (48) [2] Não suportado Não suportado 29 Não suportado
supportedContentEncodings propriedade 60 60 (Yes) ? Não suportado Não suportado 47 Não suportado

Veja também

Etiquetas do documento e colaboradores

Colaboradores desta página: GPrimola, M4ttscx
Última atualização por: GPrimola,