Web/API/PushSubscription/getKey

From Get docs

This is an experimental technologyCheck the Browser compatibility table carefully before using this in production.


The getKey() method of the 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.

Syntax

​var key = subscription.getKey(name);

Parameters

name
A DOMString representing the encryption method used to generate a client key.  The value can be:
p256dh

Returns

An ArrayBuffer.

Example

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');

    ...

Specifications

Specification Status Comment
Push API Working Draft This is the Push API spec, but note that getKey() is not currently specified in here. It is currently Firefox-only experimental.

Browser Compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
getKey() Chrome

Full support 42

Edge

Full support 16

Firefox Full support 44

Notes'

Full support 44

Notes'

Notes' Extended Support Releases (ESR) before Firefox 78 ESR do not support service workers and the Push API.

IE

No support No

Opera

Full support 29

Safari

No support No

WebView Android

No support No

Chrome Android

Full support 42

Firefox Android

Full support 48

Opera Android

Full support 29

Safari iOS

No support No

Samsung Internet Android

Full support 4.0

Legend

Full support  
Full support
No support  
No support
See implementation notes.'
See implementation notes.