Receiving Push Notifications in Your App¶
Push notifications enable your app to receive new events instantly without requiring continuous polling via API calls. These notifications can be leveraged to trigger actions such as updates to trackers, configurations, tasks, or even to send alerts to platforms like Telegram.
Whether your app is mobile or web-based, the subscription process for push notifications varies. Below, we outline the specific steps for each case.
Mobile Apps¶
The Navixy platform supports Firebase Cloud Messaging (FCM).
To get push notifications on mobile devices, follow these steps to obtain the app's push token:
- Firebase projects support Google service accounts, which you can use to call Firebase server APIs from the app server. To authenticate a service account and authorize it to access Firebase services, you must generate a private key file in JSON format.
- Contact our support team at support@navixy.com with the generated private key, platform (Android/iOS), and your app's name.
- We will provide you with the application ID for an API call to bind your app.
- Obtain the push token of your app from Google Play Market or App Store.
- Use the
push_token/bind
API call from your app. Substitute the push token and the application ID received from our support team.
Web Apps¶
To start receiving push notifications in your web application, follow these steps:
When creating a subscription, you must specify the applicationServerKey. It should be in bytes, not as a base64 string.
Our public key in base64 is:
BKPE9clw-_CxWE-WlqSkVpLnHT-7rE637udxtfGRUfXshjfCgatSNqNtRp5HjwEukACcdhIPMwPc9Ch7UsZXxY
Here is a function example:
return navigator.serviceWorker
.register('/service-worker.js')
.then(function (registration) {
const subscribeOptions = {
userVisibleOnly: true,
applicationServerKey: urlBase64ToUint8Array(
'BKPE9clw-_CxWE-WlqSkVpLnHT-7rE637udxtfGRUfXshjfCgatSNqNtRp5HjwEukACcdhIPMwPXc9Ch7UsZXxY'
),
};
return registration.pushManager.subscribe(subscribeOptions);
})
.then(function (pushSubscription) {
console.log(
'Received PushSubscription: ',
JSON.stringify(pushSubscription),
);
return pushSubscription;
});
Take the endpoint
and keys p256dh
and auth
from the pushSubscription
object.
Example:
{
"endpoint": "https://some.pushservice.com/something-unique",
"keys": {
"p256dh": "BIPUL12DLfytvTajnryr2PRdAgXS3HGKiLqndGcJGabyhHheJYlNGCeXl1dn18gSJ1WAkAPIxr4gK0_dQds4yiI=",
"auth": "FPssNDTKnInHVndSTdbKFw=="
}
}
Use the push_token/bind
API call with parameters:
application=w3c_pushapi
token=whole endpoint from pushSubscription, full URL like https://fcm.googleapis.com/fcm/send/f6kicrBn7S0:APA91b......
parameters=object with keys from pushSubscription {"p256dh": "...", "auth":"..."}
You will receive the notification in event.data
in JSON format.