75 lines
2.4 KiB
Markdown
75 lines
2.4 KiB
Markdown
# NotificationListenerService plugin for Cordova
|
|
|
|
This is an implementation of the
|
|
[NotificationListenerService in Android](https://developer.android.com/reference/android/service/notification/NotificationListenerService.html)
|
|
for Cordova.
|
|
|
|
A service that receives calls from the system when new notifications are posted or removed, or their ranking changed.
|
|
|
|
Note: This plugin doesn't work for IOS or Windows Phone, feel free to create a pull request if you want to add that functionality to this project.
|
|
|
|
## How to install
|
|
|
|
cordova plugin add https://github.com/coconauts/NotificationListener-cordova
|
|
|
|
## Enable notification listener service
|
|
|
|
This service requires an special permission that must be enabled from settings on Android (Settings > Notifications > Notification access)
|
|
|
|
![](/settings.jpg)
|
|
|
|
Note: The app requires the following permission in your Manifest file on Android, which will be added automatically:
|
|
|
|
android.permission.BIND_NOTIFICATION_LISTENER_SERVICE
|
|
|
|
## How to use
|
|
|
|
On Cordova initialization, add the callback for your notification-listener.
|
|
Then everytime you get a notification in your phone that callback in JS will be triggered with the notification data.
|
|
|
|
```
|
|
var app = {
|
|
initialize: function() {
|
|
console.log("Initializing app");
|
|
this.bindEvents();
|
|
},
|
|
bindEvents: function() {
|
|
console.log("Binding events");
|
|
document.addEventListener('deviceready', this.onDeviceReady, false);
|
|
},
|
|
onDeviceReady: function() {
|
|
console.log("Device ready");
|
|
|
|
notificationListener.listen(function(n){
|
|
console.log("Received notification " + JSON.stringify(n) );
|
|
}, function(e){
|
|
console.log("Notification Error " + e);
|
|
});
|
|
}
|
|
};
|
|
app.initialize();
|
|
```
|
|
|
|
For a full example, please see our [WatchDuino2 repository](https://github.com/coconauts/watchduino2-companion-app)
|
|
|
|
## Sample output
|
|
```
|
|
Received notification
|
|
{
|
|
"title":"Chuck Norris",
|
|
"package":"com.google.android.talk",
|
|
"text":"Hello world",
|
|
"textLines":""
|
|
}
|
|
```
|
|
|
|
## Notification response format
|
|
|
|
The notification response received by Javascript is a simplified object from the
|
|
[StatusBarNotification class](https://developer.android.com/reference/android/service/notification/StatusBarNotification.html)
|
|
in Android.
|
|
|
|
Feel free to update the
|
|
[notification parser](https://github.com/coconauts/NotificationListener-cordova/blob/master/src/android/NotificationCommands.java#L80)
|
|
inside this plugin if needed.
|