Skip to content

dmitry-korolev/push-js

Repository files navigation

Push-JS

Table of Contents

Purpose

Wrapper around Push and Notifications API. Handles subscription and unsubscription. Provides some useful methods.

Needs service worker to be installed in any way. Provides an interface to perform service worker installation if needed.

Example

You can find a basic example application including manifest.json and fully commented service worker in the example folder.

To run the app use npm run local command and navigate to http://localhost:5001.

Usage

import Push from 'push-js';

const push = new Push(); // All arguments are optional
push.subscribe().then(subscription => {});
push.unsubscribe().then(() => {});

Service worker

There is a simple service worker provided with this package. It's needed to make notification events to work properly. You may use it as is, but the best way is to import it in your service worker, as shown in the example.

Constructor parameters

options (optional)

An options object that can contain some callbacks and a path to the service worker.

  • stateChangeCb: receives state and an Error object if an error occurred.
  • subscriptionUpdateCb: receives subscription object (PushSubscription).
  • logCb: receives anything that should be logged.

Instance methods

Push.prototype.subscribe()

Creates and returns new subscription if it does n't exist, returns old otherwise.

Push.prototype.unsubscribe()

Tries to unsubscribe. Returns resolved Promise anyway.

Static methods

Push.getPermissionState()

Returns permission state. See ./source/constants/states.js.

Push.requestPermission()

Requests user permission to show notifications. Returns resolved or rejected Promise depending on user decision.

Push.checkSupport()

Checks browser support and returns Boolean.

Push.getSubscription()

Same as PushManager.getSubscription().

Push.showNotification()

Accepts two parameters, same as new Notification constuctor does. See MDN for the description. Shows notification via service worker. Returns Promise resolved with corresponding Notification object.

Version 1.1.1