--- title: PushManager slug: Web/API/PushManager tags: - API - Experimental - Interface - NeedsTranslation - Push - Push API - Reference - Service Workers - TopicStub translation_of: Web/API/PushManager ---
{{ApiRef("Push API")}}
Push API 的PushManager
接口提供了从第三方服务器接收消息通知的能力。
可以通过ServiceWorkerRegistration.pushManager属性获得
注意: 这个属性替代了已被废弃的{{domxref("PushRegistrationManager")}}
None.
null
。'granted',
'denied'
,'prompt'
中的一种。PushPermissionStatus
状态,该状态只能是'granted',
'denied'
,'default'
中的一种。目前已经被{{domxref("PushManager.permissionState()")}}取代。this.onpush = function(event) { console.log(event.data); // 这里我们可以将数据写入IndexedDB,发送给其他window对象,或者显示一个通知 } navigator.serviceWorker.register('serviceworker.js').then( function(serviceWorkerRegistration) { serviceWorkerRegistration.pushManager.subscribe().then( function(pushSubscription) { console.log(pushSubscription.subscriptionId); console.log(pushSubscription.endpoint); // 现在我们已经获取到了服务器需要的push订阅信息,我们可以使用XHR将它们发送给服务器 }, function(error) { // 在开发环境下打印错误是很有帮助的。在生产环境下,将错误上报到服务器也是十分必要的 console.log(error); } ); });
Specification | Status | Comment |
---|---|---|
{{SpecName('Push API','#pushmanager-interface','PushManager')}} | {{Spec2('Push API')}} | Initial definition. |
{{Compat("api.PushManager")}}