1
0
Fork 0
mirror of https://codeberg.org/Mercury-IM/Smack synced 2024-12-28 23:27:57 +01:00
Smack/documentation/extensions/pushnotifications.md
Fernando Ramirez e266b1acd8 Push Notifications (XEP-0357) implementation
Fixes SMACK-738
2016-11-01 08:46:59 +01:00

82 lines
1.9 KiB
Markdown

Push Notifications
==================
Allows to manage how XMPP servers deliver information for use in push notifications to mobile and other devices.
* Check push notifications support
* Enable push notifications
* Disable push notifications
* Remote disabling of push notifications
**XEP related:** [XEP-0357](http://xmpp.org/extensions/xep-0357.html)
Get push notifications manager
------------------------------
```
PushNotificationsManager pushNotificationsManager = PushNotificationsManager.getInstanceFor(connection);
```
Check push notifications support
--------------------------------
```
boolean isSupported = pushNotificationsManager.isSupportedByServer();
```
Enable push notifications
-----------------------
```
pushNotificationsManager.enable(pushJid, node);
```
or
```
pushNotificationsManager.enable(pushJid, node, publishOptions);
```
*pushJid* is a `Jid`
*node* is a `String`
*publishOptions* is a `HashMap<String, String>` (which means [option name, value])
Disable push notifications
--------------------------
```
pushNotificationsManager.disable(pushJid, node);
```
*pushJid* is a `Jid`
*node* is a `String`
**Disable all**
```
pushNotificationsManager.disableAll(pushJid);
```
*pushJid* is a `Jid`
Remote disabling of push notifications
--------------------------------------
```
// check if the message is because remote disabling of push notifications
if (message.hasExtension(PushNotificationsElements.RemoteDisablingExtension.ELEMENT, PushNotificationsElements.RemoteDisablingExtension.NAMESPACE)) {
// Get the remote disabling extension
PushNotificationsElements.RemoteDisablingExtension remoteDisablingExtension = PushNotificationsElements.RemoteDisablingExtension.from(message);
// Get the user Jid
Jid userJid = remoteDisablingExtension.getUserJid();
// Get the node
String node = remoteDisablingExtension.getNode();
}
```