Esta é uma tecnologia experimental
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
.
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 objetoPushSubscription
contendo detalhes de uma assinatura existente. Se não existe uma subscrição existente, isso resolve umnull
valor. PushManager.permissionState ()
- Retorna uma
Promise
que resolve para o estado de permissão do atualPushManager
, que será um dos'granted'
,'denied'
ou'prompt'
. PushManager.subscribe ()
- Assine um serviço push. Retorna uma
Promise
que resolve um objetoPushSubscription
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 oPushPermissionStatus
do webapp requerente, que será um dosgranted
,denied
oudefault
. Substituído porPushManager.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 |
- [1] Push (e Service Workers ) foram desativados no Firefox 45 e 52 Extended Support Releases (ESR.)
- [2] Push foi ativado por padrão no Firefox para Android versão 48.