PushManager

Experimental: Esta é uma tecnologia experimental (en-US)
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 (en-US).

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

Propriedades

PushManager.supportedContentEncodings (en-US)

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 (en-US) 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 (en-US) 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 () Deprecated

Retorna uma Promise que resolve para o PushPermissionStatusdo webapp requerente, que será um dos granted, deniedou default. Substituído por PushManager.permissionState ().

PushManager.register () Deprecated

Assina uma assinatura de envio. Substituído por PushManager.subscribe ().

PushManager.registrations () Deprecated

Recupera as assinaturas de envio existentes. Substituído por PushManager.getSubscription ().

PushManager.unregister () Deprecated

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

Specification
Push API
# pushmanager-interface

Compatibilidade com navegadores

BCD tables only load in the browser

Veja também