PushManager
Baseline 2023
Newly available
Since March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Experimental: 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 ()
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
Specification |
---|
Push API # pushmanager-interface |
Compatibilidade com navegadores
BCD tables only load in the browser