0.2.5 • Published 8 years ago

push-notification v0.2.5

Weekly downloads
28
License
MIT
Repository
github
Last release
8 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

8 years ago

0.2.4

8 years ago

0.2.3

8 years ago

0.2.2

8 years ago

0.2.1

8 years ago

0.2.0

8 years ago

0.1.8

10 years ago

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago