amis-rpc-design/node_modules/react-native/Libraries/PushNotificationIOS/PushNotificationIOS.d.ts

296 lines
9.3 KiB
TypeScript
Raw Normal View History

2023-10-07 19:42:30 +08:00
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
export interface PushNotificationPermissions {
alert?: boolean | undefined;
badge?: boolean | undefined;
sound?: boolean | undefined;
}
export interface PushNotification {
/**
* An alias for `getAlert` to get the notification's main message string
*/
getMessage(): string | Object;
/**
* Gets the sound string from the `aps` object
*/
getSound(): string;
/**
* Gets the category string from the `aps` object
*/
getCategory(): string;
/**
* Gets the notification's main message from the `aps` object
*/
getAlert(): string | Object;
/**
* Gets the content-available number from the `aps` object
*/
getContentAvailable(): number;
/**
* Gets the badge count number from the `aps` object
*/
getBadgeCount(): number;
/**
* Gets the data object on the notif
*/
getData(): Object;
/**
* Gets the thread ID on the notif
*/
getThreadId(): string;
/**
* iOS Only
* Signifies remote notification handling is complete
*/
finish(result: string): void;
}
type PresentLocalNotificationDetails = {
alertBody: string;
alertAction: string;
alertTitle?: string | undefined;
soundName?: string | undefined;
category?: string | undefined;
userInfo?: Object | undefined;
applicationIconBadgeNumber?: number | undefined;
};
type ScheduleLocalNotificationDetails = {
alertAction?: string | undefined;
alertBody?: string | undefined;
alertTitle?: string | undefined;
applicationIconBadgeNumber?: number | undefined;
category?: string | undefined;
fireDate?: number | string | undefined;
isSilent?: boolean | undefined;
repeatInterval?:
| 'year'
| 'month'
| 'week'
| 'day'
| 'hour'
| 'minute'
| undefined;
soundName?: string | undefined;
userInfo?: Object | undefined;
};
export type PushNotificationEventName =
| 'notification'
| 'localNotification'
| 'register'
| 'registrationError';
type FetchResult = {
NewData: 'UIBackgroundFetchResultNewData';
NoData: 'UIBackgroundFetchResultNoData';
ResultFailed: 'UIBackgroundFetchResultFailed';
};
/**
* Handle push notifications for your app, including permission handling and icon badge number.
* @see https://reactnative.dev/docs/pushnotificationios#content
*
* //FIXME: BGR: The documentation seems completely off compared to the actual js implementation. I could never get the example to run
*/
export interface PushNotificationIOSStatic {
/**
* Schedules the localNotification for immediate presentation.
* details is an object containing:
* alertBody : The message displayed in the notification alert.
* alertAction : The "action" displayed beneath an actionable notification. Defaults to "view";
* soundName : The sound played when the notification is fired (optional).
* category : The category of this notification, required for actionable notifications (optional).
* userInfo : An optional object containing additional notification data.
* applicationIconBadgeNumber (optional) : The number to display as the app's icon badge. The default value of this property is 0, which means that no badge is displayed.
*/
presentLocalNotification(details: PresentLocalNotificationDetails): void;
/**
* Schedules the localNotification for future presentation.
* details is an object containing:
* fireDate : The date and time when the system should deliver the notification.
* alertBody : The message displayed in the notification alert.
* alertAction : The "action" displayed beneath an actionable notification. Defaults to "view";
* soundName : The sound played when the notification is fired (optional).
* category : The category of this notification, required for actionable notifications (optional).
* userInfo : An optional object containing additional notification data.
* applicationIconBadgeNumber (optional) : The number to display as the app's icon badge. Setting the number to 0 removes the icon badge.
*/
scheduleLocalNotification(details: ScheduleLocalNotificationDetails): void;
/**
* Cancels all scheduled localNotifications
*/
cancelAllLocalNotifications(): void;
/**
* Remove all delivered notifications from Notification Center.
*/
removeAllDeliveredNotifications(): void;
/**
* Provides you with a list of the apps notifications that are still displayed in Notification Center.
*/
getDeliveredNotifications(callback: (notifications: Object[]) => void): void;
/**
* Removes the specified notifications from Notification Center
*/
removeDeliveredNotifications(identifiers: string[]): void;
/**
* Cancel local notifications.
* Optionally restricts the set of canceled notifications to those notifications whose userInfo fields match the corresponding fields in the userInfo argument.
*/
cancelLocalNotifications(userInfo: Object): void;
/**
* Sets the badge number for the app icon on the home screen
*/
setApplicationIconBadgeNumber(number: number): void;
/**
* Gets the current badge number for the app icon on the home screen
*/
getApplicationIconBadgeNumber(callback: (badge: number) => void): void;
/**
* Gets the local notifications that are currently scheduled.
*/
getScheduledLocalNotifications(
callback: (notifications: ScheduleLocalNotificationDetails[]) => void,
): void;
/**
* Attaches a listener to remote notifications while the app is running in the
* foreground or the background.
*
* The handler will get be invoked with an instance of `PushNotificationIOS`
*
* The type MUST be 'notification'
*/
addEventListener(
type: 'notification' | 'localNotification',
handler: (notification: PushNotification) => void,
): void;
/**
* Fired when the user registers for remote notifications.
*
* The handler will be invoked with a hex string representing the deviceToken.
*
* The type MUST be 'register'
*/
addEventListener(
type: 'register',
handler: (deviceToken: string) => void,
): void;
/**
* Fired when the user fails to register for remote notifications.
* Typically occurs when APNS is having issues, or the device is a simulator.
*
* The handler will be invoked with {message: string, code: number, details: any}.
*
* The type MUST be 'registrationError'
*/
addEventListener(
type: 'registrationError',
handler: (error: {message: string; code: number; details: any}) => void,
): void;
/**
* Removes the event listener. Do this in `componentWillUnmount` to prevent
* memory leaks
*/
removeEventListener(
type: PushNotificationEventName,
handler:
| ((notification: PushNotification) => void)
| ((deviceToken: string) => void)
| ((error: {message: string; code: number; details: any}) => void),
): void;
/**
* Requests all notification permissions from iOS, prompting the user's
* dialog box.
*/
requestPermissions(permissions?: PushNotificationPermissions[]): void;
/**
* Requests all notification permissions from iOS, prompting the user's
* dialog box.
*/
requestPermissions(
permissions?: PushNotificationPermissions,
): Promise<PushNotificationPermissions>;
/**
* Unregister for all remote notifications received via Apple Push
* Notification service.
* You should call this method in rare circumstances only, such as when
* a new version of the app removes support for all types of remote
* notifications. Users can temporarily prevent apps from receiving
* remote notifications through the Notifications section of the
* Settings app. Apps unregistered through this method can always
* re-register.
*/
abandonPermissions(): void;
/**
* See what push permissions are currently enabled. `callback` will be
* invoked with a `permissions` object:
*
* - `alert` :boolean
* - `badge` :boolean
* - `sound` :boolean
*/
checkPermissions(
callback: (permissions: PushNotificationPermissions) => void,
): void;
/**
* This method returns a promise that resolves to either the notification
* object if the app was launched by a push notification, or `null` otherwise.
*/
getInitialNotification(): Promise<PushNotification | null>;
/**
* iOS fetch results that best describe the result of a finished remote notification handler.
* For a list of possible values, see `PushNotificationIOS.FetchResult`.
*/
FetchResult: FetchResult;
}
/**
* PushNotificationIOS has been extracted from react-native core and will be removed in a future release.
* It can now be installed and imported from `@react-native-community/push-notification-ios` instead of 'react-native'.
* @see https://github.com/react-native-community/react-native-push-notification-ios
* @deprecated
*/
export const PushNotificationIOS: PushNotificationIOSStatic;
/**
* PushNotificationIOS has been extracted from react-native core and will be removed in a future release.
* It can now be installed and imported from `@react-native-community/push-notification-ios` instead of 'react-native'.
* @see https://github.com/react-native-community/react-native-push-notification-ios
* @deprecated
*/
export type PushNotificationIOS = PushNotificationIOSStatic;