localNotifications.md 3.63 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
---
id: localNotifications
title: Local Notifications
sidebar_label: Local Notifications
---

## <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Apple_logo_black.svg/2000px-Apple_logo_black.svg.png" width=30/> iOS

You can manually trigger local notifications in your JS code, to be posted immediately or in the future.
Triggering local notifications is fully compatible with React Native `PushNotificationsIOS` library.

Example:

```javascript
let localNotification = Notifications.postLocalNotification({
	body: "Local notificiation!",
	title: "Local Notification Title",
	sound: "chime.aiff",
    silent: false,
	category: "SOME_CATEGORY",
	userInfo: { }
});
```

Notification object contains:

- **`fireDate`**- The date and time when the system should deliver the notification (optinal - default is immidiate dispatch).
- `body`- The message displayed in the notification alert.
- `title`- The title of the notification, displayed in the notifications center.
- `alertAction`- The "action" displayed beneath an actionable notification on the lockscreen (e.g. "Slide to **open**"). Note that Apple no longer shows this in iOS 10.
- `sound`- The sound played when the notification is fired (optional -- will play default sound if unspecified). This must be the filename of a sound included in the application bundle; the sound must be 30 seconds or less and should be encoded with linear PCM or IMA4.
- `silent`- Whether the notification sound should be suppressed (optional).
- `category`- The category of this notification, required for [interactive notifications](#interactive--actionable-notifications-ios-only) (optional).
- `userInfo`- An optional object containing additional notification data.

### Cancel Scheduled Local Notifications

The `Notifications.postLocalNotification()` method return unique `notificationId` values, which can be used in order to cancel specific local notifications that were scheduled for delivery on `fireDate` and have not yet been delivered. You can cancel local notification by calling `Notifications.cancelLocalNotification(notificationId)`.

Example:

```javascript
let someLocalNotification = Notifications.postLocalNotification({
	body: "Local notificiation!",
	title: "Local Notification Title",
	sound: "chime.aiff",
	category: "SOME_CATEGORY",
	userInfo: { }
});

Notifications.cancelLocalNotification(someLocalNotification);
```

To cancel all local notifications (**iOS only!**), use `cancelAllLocalNotifications()`:

```javascript
Notifications.ios.cancelAllLocalNotifications();
```

#### Cancel Delivered Local Notifications (iOS 10+ only)

To dismiss notifications from the notification center that have already been shown to the user, call `Notifications.ios.removeDeliveredNotifications([notificationId])`:

```javascript
let someLocalNotification = Notifications.postLocalNotification({...});

Notifications.ios.removeDeliveredNotifications([someLocalNotification]);
```

Call `removeAllDeliveredNotifications()` to dismiss all delivered notifications
(note that this will dismiss push notifications in addition to local
notifications).


## <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/a0/APK_format_icon.png/768px-APK_format_icon.png" width=30/> Android

Much like on iOS, notifications can be triggered locally. The API to do so is a simplified version of the iOS equivalent that works more natually with the Android perception of push (remote) notifications:

```javascript
Notifications.postLocalNotification({
	title: "Local notification",
	body: "This notification was generated by the app!",
	extra: "data"
});
```

Upon notification opening (tapping by the device user), all data fields will be delivered as-is).