Skip to content

ReScript bindings for @react-native-community/react-native-push-notification-ios

License

Notifications You must be signed in to change notification settings

rescript-react-native/push-notification-ios

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@rescript-react-native/push-notification-ios

Build Status Version ReScript Forum

ReScript bindings for @react-native-community/react-native-push-notification-ios.

Exposed as ReactNativePushNotificationIOS module.

@rescript-react-native/push-notification-ios X.y.* means it's compatible with @react-native-community/react-native-push-notification-ios X.y.*

Installation

When @react-native-community/react-native-push-notification-ios is properly installed & configured by following their installation instructions, you can install the bindings:

npm install @rescript-react-native/push-notification-ios
# or
yarn add @rescript-react-native/push-notification-ios

@rescript-react-native/push-notification-ios should be added to bs-dependencies in your bsconfig.json:

{
  //...
  "bs-dependencies": [
    "@rescript/react",
    "rescript-react-native",
    // ...
+    "@rescript-react-native/push-notification-ios"
  ],
  //...
}

Usage

Types

ReactNativePushNotificationIOS.Notification.t

  type t; // abstract type

ReactNativePushNotificationIOS.localNotification

type localNotification;

[@bs.obj]
external localNotification:
  (
    ~alertBody: string=?,
    ~alertTitle: string=?,
    ~alertAction: string=?,
    ~soundName: string=?,
    ~isSilent: bool=?,
    ~category: string=?,
    ~userInfo: Js.Json.t=?,
    ~applicationIconBadgeNumber: int=?,
    ~fireDate: Js.Date.t=?,
    ~repeatInterval: [@bs.string] [
                       | `minute
                       | `hour
                       | `day
                       | `week
                       | `month
                       | `year
                     ]
                       =?,
    unit
  ) =>
  localNotification =
  "";

ReactNativePushNotificationIOS.deliveredNotification

type deliveredNotification = {
  identifier: string
  date: option(string)
  title: option(string)
  body: option(string)
  category: option(string)
  threadId: option(string)
  userInfo: option(Js.Json.t),
};

ReactNativePushNotificationIOS.formattedLocalNotification

type formattedLocalNotification = {
  fireDate: option(string),
  alertAction: option(string),
  alertTitle: option(string),
  alertBody: option(string),
  applicationIconBadgeNumber: option(int),
  category: option(string),
  repeatInterval: option(string),
  soundName: option(string),
  userInfo: option(Js.Json.t),
};

ReactNativePushNotificationIOS.registrationError

type registrationError('a) = {
  message: string,
  code: int,
  details: Js.t('a),
};

ReactNativePushNotificationIOS.permissions

type permissions = {
  alert: bool,
  badge: bool,
  sound: bool,
  lockScreen: bool,
  notificationCenter: bool,
};

ReactNativePushNotificationIOS.requestPermissionsOptions

type requestPermissionsOptions;
[@bs.obj]
external requestPermissionsOptions:
  (~alert: bool=?, ~badge: bool=?, ~sound: bool=?, unit) =>
  requestPermissionsOptions =
  "";

ReactNativePushNotificationIOS.fetchResult

type fetchResult;
[@bs.obj]
external fetchResult:
  (~_NewData: string=?, ~_NoData: string=?, ~_ResultFailed: string=?, unit) =>
  fetchResult =
  "";

Methods

ReactNativePushNotificationIOS.Notification.getAlert

Notification.t => option(Js.Json.t)

ReactNativePushNotificationIOS.Notification.getTitle

Notification.t => option(string)

ReactNativePushNotificationIOS.Notification.getMessage

Notification.t => option(Js.Json.t)

ReactNativePushNotificationIOS.Notification.getSound

Notification.t => option(string)

ReactNativePushNotificationIOS.Notification.getCategory

Notification.t => option(string)

ReactNativePushNotificationIOS.Notification.getContentAvailable

Notification.t => bool

ReactNativePushNotificationIOS.Notification.getBadgeCount

Notification.t => option(int)

ReactNativePushNotificationIOS.Notification.getData

Notification.t => option(Js.Json.t)

ReactNativePushNotificationIOS.Notification.getThreadID

Notification.t => option(string)

ReactNativePushNotificationIOS.presentLocalNotification

localNotification => unit

ReactNativePushNotificationIOS.scheduleLocalNotification

localNotification => unit

ReactNativePushNotificationIOS.cancelAllLocalNotifications

unit => unit

ReactNativePushNotificationIOS.removeAllDeliveredNotifications

unit => unit

ReactNativePushNotificationIOS.getDeliveredNotifications

(array(deliveredNotification) => unit)

ReactNativePushNotificationIOS.removeDeliveredNotifications

(~identifiers: array(string)) => unit

ReactNativePushNotificationIOS.setApplicationIconBadgeNumber

int => unit

ReactNativePushNotificationIOS.getApplicationIconBadgeNumber

(int => unit) => unit

ReactNativePushNotificationIOS.cancelLocalNotifications

unit => unit

ReactNativePushNotificationIOS.cancelLocalNotificationsWithUserInfo

Js.Json.t => unit

ReactNativePushNotificationIOS.getScheduledLocalNotifications

(array(formattedLocalNotification) => unit) => unit

ReactNativePushNotificationIOS.addEventListener

  (
  [@bs.string]
  [
    | `notification(Notification.t => unit)
    | `localNotification(Notification.t => unit)
    | `register((~deviceToken: string) => unit)
    | `registrationError(registrationError('a) => unit)
  ]
  ) =>
  unit

ReactNativePushNotificationIOS.removeEventListener

(
  [@bs.string]
  [
    | `notification(Notification.t => unit)
    | `localNotification(Notification.t => unit)
    | `register((~deviceToken: string) => unit)
    | `registrationError(registrationError('a) => unit)
  ]
  ) =>
  unit

ReactNativePushNotificationIOS.requestPermissions

unit => Js.Promise.t(permissions)

ReactNativePushNotificationIOS.requestPermissionsWithOptions

requestPermissionsOptions => Js.Promise.t(permissions)

ReactNativePushNotificationIOS.abandonPermissions

unit => unit

ReactNativePushNotificationIOS.checkPermissions

(unit => permissions) => unit

ReactNativePushNotificationIOS.finish

fetchResult => unit

ReactNativePushNotificationIOS.getInitialNotification

unit => Js.Promise.t(Js.Nullable.t(Notification.t))

Changelog

Check the changelog for more informations about recent releases.


Contribute

Read the contribution guidelines before contributing.

Code of Conduct

We want this community to be friendly and respectful to each other. Please read our full code of conduct so that you can understand what actions will and will not be tolerated.