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

js
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

js
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