0.2.5 • Published 7 years ago

push-notification v0.2.5

Weekly downloads
28
License
MIT
Repository
github
Last release
7 years ago

push-notification NPM version Build Status Dependency Status Coverage percentage

Installation

$ npm install --save push-notification

Usage

const PushNotification = require('push-notification');
const DeviceType = PushNotification.DeviceType;

const pn = PushNotification({
    apn: {
        cert: path.resolve('./cert/cert.pem'),
        key: path.resolve('./cert/key.pem'),
        production: false,
    },
    gcm: {
        apiKey: 'gcm-api-key'
    }
});

const data = {
    title: 'Title',
    message: 'Message',
    badge: '',
    sound: '',
    payload: {
        param1: 'additional data',
        param2: 'another data'
    }
};

pn.pushToAPN('ios-device-token', data); // push to single ios device
pn.pushToAPN(['token1', 'token2', 'token3'], data); // push to multiple ios devices

pn.push('device-token', data, DeviceType.IOS); // push to single ios device
pn.push(['token1', 'token2', 'token3'], data, DeviceType.IOS); // push to multiple ios devices

pn.pushToGCM('android-device-token', data); // push to single android device
pn.pushToGCM(['token1', 'token2', 'token3'], data); // push to multiple android devices

pn.push('device-token', data, DeviceType.ANDROID); // push to single android device
pn.push(['token1', 'token2', 'token3'], data, DeviceType.ANDROID); // push to multiple android devices

const devices = [
    { token: 'token1', type: DeviceType.IOS },
    { token: 'token2', type: DeviceType.ANDROID }
];

// send notification to all devices
Promise.all(devices.map(device => pn.push(device.token, data, device.type)));

// or this might be more performant 
const iosTokens = devices.filter(d => d.type === DeviceType.IOS).map(d => d.token);
const andTokens = devices.filter(d => d.type === DeviceType.ANDROID).map(d => d.token);
Promise.all([
    iosTokens.length ? pn.push(iosTokens, data, DeviceType.IOS) : Promise.resolve(),
    andTokens.length ? pn.push(andTokens, data, DeviceType.ANDROID) : Promise.resolve()
]);

push, pushToAPN, pushToGCM return Promise instance

pn.push(...).then(res => console.log(res)).catch(err => console.log(err));

Reference

PushNotification(options)

Arguments

options

  • apn
    • cert: path to cert.pem
    • key: path to key.pem
  • gcm
    • apiKey

pushToAPN(tokens, data)

Arguments

tokens

  • (string) a device token
  • (array) array of device tokens

data

  • title
  • message
  • badge
  • sound
  • (object) payload

Returns

Promise resolves push result

pushToGCM(tokens, data)

Arguments

tokens

  • (string) a device token
  • (array) array of device tokens

data

  • title
  • message
  • badge
  • sound
  • (object) payload

Returns

Promise resolves push result

push(tokens, data, type)

Arguments

tokens

  • (string) a device token
  • (array) array of device tokens

data

  • title
  • message
  • badge
  • sound
  • (object) payload

type

  • (DeviceType) DeviceType.IOS or DeviceType.ANDROID

Returns

Promise resolves push result

Configuring APN and GCM

APN

GCM

License

MIT © Dongwon Lim

0.2.5

7 years ago

0.2.4

7 years ago

0.2.3

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.1.8

8 years ago

0.1.7

9 years ago

0.1.6

9 years ago

0.1.5

9 years ago

0.1.4

9 years ago

0.1.3

9 years ago

0.1.2

9 years ago

0.1.1

9 years ago

0.1.0

9 years ago