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 objetoPushSubscription
(en-US) 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
(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 oPushPermissionStatus
do webapp requerente, que será um dosgranted
,denied
oudefault
. Substituído porPushManager.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
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! (en-US)
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.