react-onesignal
Advanced tools
Comparing version 2.0.3 to 2.0.4
@@ -66,5 +66,5 @@ declare type Action<T> = (item: T) => void; | ||
init(options: IInitObject): Promise<void>; | ||
on(event: string, listener: () => void): void; | ||
off(event: string, listener: () => void): void; | ||
once(event: string, listener: () => void): void; | ||
on(event: string, listener: (eventData?: any) => void): void; | ||
off(event: string, listener: (eventData?: any) => void): void; | ||
once(event: string, listener: (eventData?: any) => void): void; | ||
isPushNotificationsEnabled(callback?: Action<boolean>): Promise<boolean>; | ||
@@ -71,0 +71,0 @@ showHttpPrompt(options?: AutoPromptOptions): Promise<void>; |
12
index.ts
@@ -124,5 +124,5 @@ const ONESIGNAL_SDK_ID = 'onesignal-sdk'; | ||
init(options: IInitObject): Promise<void> | ||
on(event: string, listener: () => void): void | ||
off(event: string, listener: () => void): void | ||
once(event: string, listener: () => void): void | ||
on(event: string, listener: (eventData?: any) => void): void | ||
off(event: string, listener: (eventData?: any) => void): void | ||
once(event: string, listener: (eventData?: any) => void): void | ||
isPushNotificationsEnabled(callback?: Action<boolean>): Promise<boolean> | ||
@@ -166,3 +166,3 @@ showHttpPrompt(options?: AutoPromptOptions): Promise<void> | ||
function on(event: string, listener: () => void): void { | ||
function on(event: string, listener: (eventData?: any) => void): void { | ||
if (!doesOneSignalExist()) { | ||
@@ -181,3 +181,3 @@ reactOneSignalFunctionQueue.push({ | ||
function off(event: string, listener: () => void): void { | ||
function off(event: string, listener: (eventData?: any) => void): void { | ||
if (!doesOneSignalExist()) { | ||
@@ -196,3 +196,3 @@ reactOneSignalFunctionQueue.push({ | ||
function once(event: string, listener: () => void): void { | ||
function once(event: string, listener: (eventData?: any) => void): void { | ||
if (!doesOneSignalExist()) { | ||
@@ -199,0 +199,0 @@ reactOneSignalFunctionQueue.push({ |
{ | ||
"name": "react-onesignal", | ||
"version": "2.0.3", | ||
"version": "2.0.4", | ||
"description": "React OneSignal Module: Make it easy to integrate OneSignal with your React App!", | ||
@@ -5,0 +5,0 @@ "author": "rgomezp", |
122
README.md
@@ -31,3 +31,2 @@ <p align="center"> | ||
### Yarn | ||
@@ -103,39 +102,39 @@ | ||
interface OneSignal { | ||
init(options?: any): Promise<void> | ||
on(event: string, listener: Function): void | ||
off(event: string, listener: Function): void | ||
once(event: string, listener: Function): void | ||
isPushNotificationsEnabled(callback?: Action<boolean>): Promise<boolean> | ||
showHttpPrompt(options?: AutoPromptOptions): void | ||
registerForPushNotifications(options?: RegisterOptions): Promise<void> | ||
setDefaultNotificationUrl(url: string): void | ||
setDefaultTitle(title: string): void | ||
getTags(callback?: Action<any>): void | ||
sendTag(key: string, value: any, callback?: Action<Object>): Promise<Object | null> | ||
sendTags(tags: TagsObject<any>, callback?: Action<Object>): Promise<Object | null> | ||
deleteTag(tag: string): Promise<Array<string>> | ||
deleteTags(tags: Array<string>, callback?: Action<Array<string>>): Promise<Array<string>> | ||
addListenerForNotificationOpened(callback?: Action<Notification>): void | ||
setSubscription(newSubscription: boolean): Promise<void> | ||
showHttpPermissionRequest(options?: AutoPromptOptions): Promise<any> | ||
showNativePrompt(): Promise<void> | ||
showSlidedownPrompt(options?: AutoPromptOptions): Promise<void> | ||
showCategorySlidedown(options?: AutoPromptOptions): Promise<void> | ||
showSmsSlidedown(options?: AutoPromptOptions): Promise<void> | ||
showEmailSlidedown(options?: AutoPromptOptions): Promise<void> | ||
showSmsAndEmailSlidedown(options?: AutoPromptOptions): Promise<void> | ||
getNotificationPermission(onComplete?: Function): Promise<NotificationPermission> | ||
getUserId(callback?: Action<string | undefined | null>): Promise<string | undefined | null> | ||
getSubscription(callback?: Action<boolean>): Promise<boolean> | ||
setEmail(email: string, options?: SetEmailOptions): Promise<string|null> | ||
setSMSNumber(smsNumber: string, options?: SetSMSOptions): Promise<string | null> | ||
logoutEmail(): void | ||
logoutSMS(): void | ||
setExternalUserId(externalUserId: string | undefined | null, authHash?: string): Promise<void> | ||
removeExternalUserId(): Promise<void> | ||
getExternalUserId(): Promise<string | undefined | null> | ||
provideUserConsent(consent: boolean): Promise<void> | ||
getEmailId(callback?: Action<string | undefined>): Promise<string | null | undefined> | ||
getSMSId(callback?: Action<string | undefined>): Promise<string | null | undefined> | ||
sendOutcome(outcomeName: string, outcomeWeight?: number | undefined): Promise<void> | ||
init(options: IInitObject): Promise<void>; | ||
on(event: string, listener: () => void): void; | ||
off(event: string, listener: () => void): void; | ||
once(event: string, listener: () => void): void; | ||
isPushNotificationsEnabled(callback?: Action<boolean>): Promise<boolean>; | ||
showHttpPrompt(options?: AutoPromptOptions): Promise<void>; | ||
registerForPushNotifications(options?: RegisterOptions): Promise<void>; | ||
setDefaultNotificationUrl(url: string): Promise<void>; | ||
setDefaultTitle(title: string): Promise<void>; | ||
getTags(callback?: Action<any>): Promise<void>; | ||
sendTag(key: string, value: any, callback?: Action<Object>): Promise<Object | null>; | ||
sendTags(tags: TagsObject<any>, callback?: Action<Object>): Promise<Object | null>; | ||
deleteTag(tag: string): Promise<Array<string>>; | ||
deleteTags(tags: Array<string>, callback?: Action<Array<string>>): Promise<Array<string>>; | ||
addListenerForNotificationOpened(callback?: Action<Notification>): Promise<void>; | ||
setSubscription(newSubscription: boolean): Promise<void>; | ||
showHttpPermissionRequest(options?: AutoPromptOptions): Promise<any>; | ||
showNativePrompt(): Promise<void>; | ||
showSlidedownPrompt(options?: AutoPromptOptions): Promise<void>; | ||
showCategorySlidedown(options?: AutoPromptOptions): Promise<void>; | ||
showSmsSlidedown(options?: AutoPromptOptions): Promise<void>; | ||
showEmailSlidedown(options?: AutoPromptOptions): Promise<void>; | ||
showSmsAndEmailSlidedown(options?: AutoPromptOptions): Promise<void>; | ||
getNotificationPermission(onComplete?: Action<NotificationPermission>): Promise<NotificationPermission>; | ||
getUserId(callback?: Action<string | undefined | null>): Promise<string | undefined | null>; | ||
getSubscription(callback?: Action<boolean>): Promise<boolean>; | ||
setEmail(email: string, options?: SetEmailOptions): Promise<string | null>; | ||
setSMSNumber(smsNumber: string, options?: SetSMSOptions): Promise<string | null>; | ||
logoutEmail(): Promise<void>; | ||
logoutSMS(): Promise<void>; | ||
setExternalUserId(externalUserId: string | undefined | null, authHash?: string): Promise<void>; | ||
removeExternalUserId(): Promise<void>; | ||
getExternalUserId(): Promise<string | undefined | null>; | ||
provideUserConsent(consent: boolean): Promise<void>; | ||
getEmailId(callback?: Action<string | undefined>): Promise<string | null | undefined>; | ||
getSMSId(callback?: Action<string | undefined>): Promise<string | null | undefined>; | ||
sendOutcome(outcomeName: string, outcomeWeight?: number | undefined): Promise<void>; | ||
} | ||
@@ -150,6 +149,14 @@ ``` | ||
### Events and Event Listeners | ||
You can also listen for native OneSignal events like `subscriptionChange`. | ||
Use listeners to react to OneSignal-related events: | ||
* `subscriptionChange` | ||
* `permissionPromptDisplay` | ||
* `notificationPermissionChange` | ||
* `popoverShown` | ||
* `customPromptClick` | ||
* `notificationDisplay` | ||
* `notificationDismiss` | ||
**Example** | ||
``` | ||
```js | ||
OneSignal.on('subscriptionChange', function(isSubscribed) { | ||
@@ -162,3 +169,34 @@ console.log("The user's subscription state is now:", isSubscribed); | ||
## Troubleshooting | ||
### `window.OneSignal already defined as 'object'!` | ||
You will get this error if you initialize twice. Make sure you are only initializing one time. When wrapped with `React.StrictMode`, your app might be rendering twice. | ||
## Example App | ||
This repo includes an `example` React application implementing OneSignal. It was created using `create-react-app`. The app uses this repository's root level directory as the `react-onesignal` package and will bundle any changes on every run. | ||
--- | ||
## 🤝 Contributing | ||
Contributions, issues and feature requests are welcome!<br />Feel free to check [issues page](https://github.com/OneSignal/react-onesignal/issues). | ||
## Show your support | ||
Give a ⭐️ if this project helped you! | ||
## OneSignal | ||
* [Website](https://onesignal.com) | ||
* Twitter: [@onesignal](https://twitter.com/onesignal) | ||
* Github: [@OneSignal](https://github.com/OneSignal) | ||
* LinkedIn: [@onesignal](https://linkedin.com/company/onesignal) | ||
## Discord | ||
Reach out to us via our [Discord server](https://discord.com/invite/EP7gf6Uz7G)! | ||
## 📝 License | ||
Copyright © 2022 [OneSignal](https://github.com/OneSignal).<br /> | ||
This project is [Modified MIT](https://github.com/OneSignal/react-onesignal/blob/master/LICENSE) licensed. | ||
## Thanks | ||
@@ -168,2 +206,4 @@ Special thanks to [pedro-lb](https://github.com/pedro-lb) and others for work on the project this package is [based on](https://github.com/pedro-lb/react-onesignal). | ||
<img src="https://user-images.githubusercontent.com/11739227/119415383-1d354700-bcb7-11eb-946d-01c40cd07010.png" /> | ||
</a> | ||
</a> | ||
Enjoy! |
{ | ||
"compilerOptions": { | ||
"outDir": "build", | ||
"outDir": "dist", | ||
"module": "esnext", | ||
@@ -5,0 +5,0 @@ "target": "es6", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
229084
18
205