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

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

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

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

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,