To subscribe to Web Push Notifications you have to provide an Base64 application server key that needs to be converted to an Uint8Array. This package helps you with the conversion from a Base64 string to an Uint8Array
.
$ npm install --save convert-vapid-public-key
or if you use Yarn ๐
$ yarn add convert-vapid-public-key
import convertVapidKey from "convert-vapid-public-key";
async function subscribe() {
const registration = await navigator.serviceWorker.register("service-worker.js");
const subscribeOptions = {
userVisibleOnly: true,
applicationServerKey: convertVapidKey("<your-base64-vapid-public-key>"),
};
const pushSubscription = await registration.pushManager.subscribe(subscribeOptions);
// ...
}