This Chabok Push client library supports web browsers, web workers.
Please check library changes.
You can use any NPM-compatible package manager, including NPM itself and Yarn.
npm install chabokpush --saveOr:
yarn add chabokpushThen:
import chabokpush from 'chabokpush';Or, if you're not using ES6 modules:
const chabokpush = require('chabokpush');<script src="https://unpkg.com/chabokpush@[X.Y.Z]/dist/chabokpush.min.js"></script>Replace [X.Y.Z] with the latest version
The following table shows browsers' support for chabok messaging and web push notifications:
| Browser | web push | chabok messaging | Notes |
|---|---|---|---|
| Chrome | ✓ v42+ | ✓ | In v51 and less, the `gcm_sender_id` is needed to get a push subscription. |
| Edge | ✓ v17+ (April 2018) | ✓ | |
| Firefox | ✓ v44+ | ✓ | |
| Opera | ✓ v39+ * | ✓ |
* Opera supports push on Android but not on desktop.
The `gcm_sender_id` is needed to get a push subscription. |
| Safari | ✗ | ✓ | |
| Samsung Internet Browser | ✓ v4.0.10-53+ | ✓ | The `gcm_sender_id` is needed to get a push subscription. |
For supporting web push notifications on chrome, opera and Samsung internet browser gcm_sender_id should be added to Manifest.js: (If you already have created your gcm_sender_id, you can find it in panel>setting>android cart)
{
.....
"gcm_sender_id": "GCM_SENDER_ID",
.....
}then add the Manifest.js to your root index.html:
<head>
...
<link rel="manifest" href="manifest.json">
...
</head>const auth = {
appId: 'APP_ID',
webKey: 'WEB_TOKEN',
devMode:true
}
const options={silent: true}
const chabok = new chabokpush.Chabok(auth, options)if devMode enabled you can Test your Project on development Mode.
You can get your APP_ID, API_KEY, USERNAME and PASSWORD from the Chabok dashboard.
There are a number of configuration parameters which can be set for the ChabokPush client, which can be passed as an object to the ChabokPush constructor, i.e.:
| Param | Type | Default | Description |
|---|---|---|---|
| [options] | Object |
||
| [options.realtime] | Object |
true |
set false to disable Realtime Connection |
| [options.webpush] | Object |
||
| [options.webpush.enabled] | Boolean |
false |
Set true to enable push Notification |
| [options.silent] | Boolean |
true |
Receive messages Silently |
const auth = {
appId: 'APP_ID',
webKey: 'WEB_TOKEN',
devMode: true
}
const options = {
webpush: {
enabled: true,
publicKey: 'demo'
},
silent: false,
};
const chabok = new chabokpush.Chabok(auth, options)
chabok.on('registered', deviceId => console.log('DeviceId ', deviceId))
chabok.on('connected', _ => {
console.log('Connected')
chabok.subscribe('important') // subscribe to important channel
chabok.subscribeEvent('geo') // subscribe to geo events
})
chabok.on('message', msg => console.log('Message ', msg))
chabok.on('geo', geoEvent => console.log('Geo Event ', geoEvent))
chabok.on('connecting', _ => console.log('Reconnecting'))
chabok.on('disconnected', _ => console.log('offline'))
chabok.on('closed', _ => console.log('disconnected'))
if (chabok.isRegistered() && chabok.getUserId()) {
chabok.register(chabok.getUserId())
} else {
chabok.register('012345678910111213') // your userId
}