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 `PushManager`interface 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 `null`valor.

`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 `PushPermissionStatus`do webapp requerente, que será um dos `granted`, `denied`ou `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 with JavaScript enabled. Enable JavaScript to view data.

Veja também
-----------

* API de envio
* API do Worker Service