Local Notifications

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:

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

Notification object contains:

  • fireDate- The date and time when the system should deliver the notification (optinal - default is immediate 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 (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:

let someLocalNotification = Notifications.postLocalNotification({
body: "Local notification!",
title: "Local Notification Title",
sound: "chime.aiff",
category: "SOME_CATEGORY",
userInfo: { },
fireDate: new Date(),
});
Notifications.cancelLocalNotification(someLocalNotification);

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

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]):

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).

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 naturally with the Android perception of push (remote) notifications:

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. Note that scheduled notifications are not yet implemented on Android. See Issue 484.