这是
实验性技术
检查
浏览器兼容性表格
要小心谨慎在生产中使用这之前。
getKey()
方法在
PushSubscription
interface returns an
ArrayBuffer
representing a client public key, which can then be sent to a server and used in encrypting push message data.
var key = subscription.getKey(name);
DOMString
representing the encryption method used to generate a client key. The value can be:
p256dh
: An
Elliptic curve Diffie–Hellman
public key on the P-256 curve (that is, the NIST secp256r1 elliptic curve). The resulting key is an uncompressed point in ANSI X9.62 format.
auth
: An authentication secret, as described in
Message Encryption for Web Push
.
reg.pushManager.getSubscription()
.then(function(subscription) {
// Enable any UI which subscribes / unsubscribes from
// push messages.
subBtn.disabled = false;
if (!subscription) {
console.log('Not yet subscribed to Push')
// We aren't subscribed to push, so set UI
// to allow the user to enable push
return;
}
// Set your UI to show they have subscribed for
// push messages
subBtn.textContent = 'Unsubscribe from Push Messaging';
isPushEnabled = true;
// initialize status, which includes setting UI elements for subscribed status
// and updating Subscribers list via push
var endpoint = subscription.endpoint;
var key = subscription.getKey('p256dh');
var auth = subscription.getKey('auth');
...
| 规范 | 状态 | 注释 |
|---|---|---|
| Push API | 工作草案 |
This is the Push API spec, but note that
getKey()
is not currently specified in here. It is currently Firefox-only experimental.
|
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
getKey()
|
Chrome 42 | Edge 16 |
Firefox
44
注意事项
|
IE 不支持 No | Opera 29 | Safari 不支持 No | WebView Android 不支持 No | Chrome Android 42 | Firefox Android 48 | Opera Android 29 | Safari iOS 不支持 No | Samsung Internet Android 4.0 |
完整支持
不支持
见实现注意事项。
PushSubscription
getKey()
toJSON()
unsubscribe()