`push-notify` is a Node.js library written in TypeScript that simplifies the process of sending push notifications to iOS, Android, and Web devices. This library leverages Firebase, APNs, and Web Push protocols to deliver notifications efficiently.
npm install @kindly/push-notifypush-notify is a Node.js library written in TypeScript that simplifies the process of sending push notifications to iOS, Android, and Web devices. This library leverages Firebase, APNs, and Web Push protocols to deliver notifications efficiently.
- Installation
- Usage
- Initialization
- Sending Notifications
- API
- initialize
- sendNotification
- Examples
- Contributing
- License
To install push-notify, use npm or yarn:
``sh`
npm install push-notify
or using yarn
`sh`
yarn add push-notify
To initialize the push-notify library, you need to provide configurations for iOS, Android, and Web push notifications. Here is an example of how to initialize the library:
`typescript
import * as ns from 'push-notify';
const keyId: string = 'YOUR_KEY_ID';
const teamId: string = 'YOUR_TEAM_ID';
const bundleId: string = 'YOUR_BUNDLE_ID';
const isProd: boolean = false;
const p8KeyPath: string | undefined = 'path/to/AuthKey.p8';
const p8KeyContent: string | undefined = undefined;
const pemFilePath: string | undefined = 'path/to/AuthKey.pem';
const pemFileContent: string | undefined = undefined;
const apnsPriority: number = 10;
const apnsExpiration: number = 0;
let instance = ns.initialize({
apnsConfig: {
keyId: keyId,
teamId: teamId,
bundleId: bundleId,
isProd: isProd,
p8KeyPath: p8KeyPath,
p8KeyContent: p8KeyContent,
pemFilePath: pemFilePath,
pemFileContent: pemFileContent,
apnsPriority: apnsPriority,
apnsExpiration: apnsExpiration,
},
androidConfig: {
name: 'Android',
jsonCredentialsPath: 'path/to/android/credentials.json',
jsonCredentialsContent: undefined
},
webConfig: {
name: 'Web',
jsonCredentialsPath: 'path/to/web/credentials.json',
jsonCredentialsContent: undefined
}
});
`
Once the library is initialized, you can send notifications to iOS, Android, and Web devices. Here is an example:
`typescript
const deviceToken: string = 'YOUR_DEVICE_TOKEN';
const notificationPayload = {
title: 'Test title',
body: 'Test body',
sound: 'default',
priority: Priority.HIGH,
data: {
'test': 'test'
}
};
instance.sendNotification(deviceToken, notificationPayload)
.then(response => {
console.log(response);
})
.catch(error => {
console.log(error);
});
`
Initializes the push notification service with the given configurations.
Parameters:
- config: An object containing the APNs, Android, and Web configurations.
Sends a push notification to the specified device.
Parameters:
- deviceToken: The token of the device to send the notification to.payload
- : The notification payload.
Returns:
- A promise that resolves with the response from the push notification service.
`typescript
import * as ns from 'push-notify';
ns.initialize({
apnsConfig: { / ... / },
androidConfig: { / ... / },
webConfig: { / ... / }
});
const deviceToken: string = 'YOUR_DEVICE_TOKEN';
const notificationPayload = {
title: 'Hello World',
body: 'This is a test notification.'
};
ns.sendNotification(deviceToken, notificationPayload)
.then(response => {
console.log('Notification sent successfully:', response);
})
.catch(error => {
console.error('Error sending notification:', error);
});
`
`typescript
import * as ns from 'push-notify';
const instance1 = ns.initialize({
apnsConfig: { / ... / },
androidConfig: { / ... / },
webConfig: { / ... / }
});
const instance2 = ns.initialize({
apnsConfig: { / ... / },
androidConfig: { / ... / },
webConfig: { / ... / }
});
const deviceToken1: string = 'DEVICE_TOKEN_1';
const deviceToken2: string = 'DEVICE_TOKEN_2';
instance1.sendNotification(deviceToken1, { title: 'Title 1', body: 'Body 1' });
instance2.sendNotification(deviceToken2, { title: 'Title 2', body: 'Body 2' });
``
Contributions are welcome! Please open an issue or submit a pull request.
This project is licensed under the ISC License.