PushSubscription: getKey() Methode
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.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Dieses Feature ist verfügbar in Web Workers.
Die getKey()
-Methode des PushSubscription
Interfaces gibt ein ArrayBuffer
zurück, das einen öffentlichen Schlüssel des Clients darstellt. Dieser kann dann an einen Server gesendet und zur Verschlüsselung von Push-Nachrichtendaten verwendet werden.
Syntax
getKey(name)
Parameter
name
-
Ein String, der die Verschlüsselungsmethode repräsentiert, die zur Generierung eines Clientschlüssels verwendet wird. Der Wert kann sein:
p256dh
-
Ein Elliptic curve Diffie–Hellman öffentlicher Schlüssel auf der P-256-Kurve (das heißt, der NIST secp256r1 elliptischen Kurve). Der resultierende Schlüssel ist ein nicht komprimierter Punkt im ANSI X9.62 Format.
auth
-
Ein Authentifizierungsgeheimnis, wie es in Message Encryption for Web Push beschrieben ist.
Rückgabewert
Ein ArrayBuffer
oder null
, wenn kein öffentlicher Schlüssel gefunden werden kann.
Beispiele
reg.pushManager.getSubscription().then((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
const endpoint = subscription.endpoint;
const key = subscription.getKey("p256dh");
const auth = subscription.getKey("auth");
// ...
});
Spezifikationen
Specification |
---|
Push API # dom-pushsubscription-getkey |
Browser-Kompatibilität
BCD tables only load in the browser