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
BCD tables only load in the browser