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 --save
Or:
yarn add chabokpush
Then:
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
}