react-onesignal 2.0.2 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -1
- package/dist/index.d.ts +11 -12
- package/dist/index.es.js +214 -69
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +214 -69
- package/dist/index.js.map +1 -1
- package/index.ts +303 -122
- package/package.json +2 -3
- package/rollup.config.js +0 -1
package/README.md
CHANGED
|
@@ -71,9 +71,27 @@ OneSignal.init({ appId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' }).then(() => {
|
|
|
71
71
|
})
|
|
72
72
|
```
|
|
73
73
|
|
|
74
|
-
### Options
|
|
74
|
+
### Init Options
|
|
75
75
|
You can pass other [options](https://documentation.onesignal.com/docs/web-push-sdk#init) to the `init` function. Use these options to configure personalized prompt options, auto-resubscribe, and more.
|
|
76
76
|
|
|
77
|
+
**Service Worker Params**
|
|
78
|
+
You can customize the location and filenames of service worker assets. You are also able to specify the specific scope that your service worker should control. You can read more [here](https://documentation.onesignal.com/docs/onesignal-service-worker-faq#sdk-parameter-reference-for-service-workers).
|
|
79
|
+
|
|
80
|
+
In this distribution, you can specify the parameters via the following:
|
|
81
|
+
|
|
82
|
+
| Field | Details |
|
|
83
|
+
|----------------------------|------------------------------------------------------------------------------------------------------------------------|
|
|
84
|
+
| `serviceWorkerParam` | Use to specify the scope, or the path the service worker has control of. Example: `{ scope: "/js/push/onesignal/" }` |
|
|
85
|
+
| `serviceWorkerPath` | The path to the service worker file. |
|
|
86
|
+
|
|
87
|
+
### Service Worker File
|
|
88
|
+
If you haven't done so already, you will need to add the [OneSignal Service Worker file](https://github.com/OneSignal/OneSignal-Website-SDK/files/7585231/OneSignal-Web-SDK-HTTPS-Integration-Files.zip) to your site ([learn more](https://documentation.onesignal.com/docs/web-push-quickstart#step-6-upload-files)).
|
|
89
|
+
|
|
90
|
+
The OneSignal SDK file must be publicly accessible. You can put them in your top-level root or a subdirectory. However, if you are placing the file not on top-level root make sure to specify the path via the service worker params in the init options (see section above).
|
|
91
|
+
|
|
92
|
+
**Tip:**
|
|
93
|
+
Visit `https://yoursite.com/OneSignalSDKWorker.js` in the address bar to make sure the files are being served successfully.
|
|
94
|
+
|
|
77
95
|
---
|
|
78
96
|
## OneSignal API
|
|
79
97
|
### Typescript
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
(item: T): void;
|
|
3
|
-
}
|
|
1
|
+
declare type Action<T> = (item: T) => void;
|
|
4
2
|
interface AutoPromptOptions {
|
|
5
3
|
force?: boolean;
|
|
6
4
|
forceSlidedownOverNative?: boolean;
|
|
@@ -45,11 +43,11 @@ interface IInitObject {
|
|
|
45
43
|
appId: string;
|
|
46
44
|
subdomainName?: string;
|
|
47
45
|
requiresUserPrivacyConsent?: boolean;
|
|
48
|
-
promptOptions?:
|
|
49
|
-
welcomeNotification?:
|
|
50
|
-
notifyButton?:
|
|
46
|
+
promptOptions?: object;
|
|
47
|
+
welcomeNotification?: object;
|
|
48
|
+
notifyButton?: object;
|
|
51
49
|
persistNotification?: boolean;
|
|
52
|
-
webhooks?:
|
|
50
|
+
webhooks?: object;
|
|
53
51
|
autoResubscribe?: boolean;
|
|
54
52
|
autoRegister?: boolean;
|
|
55
53
|
notificationClickHandlerMatch?: string;
|
|
@@ -60,13 +58,14 @@ interface IInitObject {
|
|
|
60
58
|
serviceWorkerPath?: string;
|
|
61
59
|
serviceWorkerUpdaterPath?: string;
|
|
62
60
|
path?: string;
|
|
61
|
+
allowLocalhostAsSecureOrigin?: boolean;
|
|
63
62
|
[key: string]: any;
|
|
64
63
|
}
|
|
65
64
|
interface IOneSignal {
|
|
66
|
-
init(options
|
|
67
|
-
on(event: string, listener:
|
|
68
|
-
off(event: string, listener:
|
|
69
|
-
once(event: string, listener:
|
|
65
|
+
init(options: IInitObject): Promise<void>;
|
|
66
|
+
on(event: string, listener: () => void): void;
|
|
67
|
+
off(event: string, listener: () => void): void;
|
|
68
|
+
once(event: string, listener: () => void): void;
|
|
70
69
|
isPushNotificationsEnabled(callback?: Action<boolean>): Promise<boolean>;
|
|
71
70
|
showHttpPrompt(options?: AutoPromptOptions): Promise<void>;
|
|
72
71
|
registerForPushNotifications(options?: RegisterOptions): Promise<void>;
|
|
@@ -86,7 +85,7 @@ interface IOneSignal {
|
|
|
86
85
|
showSmsSlidedown(options?: AutoPromptOptions): Promise<void>;
|
|
87
86
|
showEmailSlidedown(options?: AutoPromptOptions): Promise<void>;
|
|
88
87
|
showSmsAndEmailSlidedown(options?: AutoPromptOptions): Promise<void>;
|
|
89
|
-
getNotificationPermission(onComplete?:
|
|
88
|
+
getNotificationPermission(onComplete?: Action<NotificationPermission>): Promise<NotificationPermission>;
|
|
90
89
|
getUserId(callback?: Action<string | undefined | null>): Promise<string | undefined | null>;
|
|
91
90
|
getSubscription(callback?: Action<boolean>): Promise<boolean>;
|
|
92
91
|
setEmail(email: string, options?: SetEmailOptions): Promise<string | null>;
|
package/dist/index.es.js
CHANGED
|
@@ -1,15 +1,38 @@
|
|
|
1
1
|
const ONESIGNAL_SDK_ID = 'onesignal-sdk';
|
|
2
2
|
const ONE_SIGNAL_SCRIPT_SRC = 'https://cdn.onesignal.com/sdks/OneSignalSDK.js';
|
|
3
|
-
const ONESIGNAL_NOT_SETUP_ERROR = 'OneSignal is not setup correctly.';
|
|
4
3
|
const reactOneSignalFunctionQueue = [];
|
|
5
|
-
|
|
4
|
+
// true if the script is successfully loaded from CDN.
|
|
6
5
|
let isOneSignalInitialized = false;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
// true if the script fails to load from CDN. A separate flag is necessary
|
|
7
|
+
// to disambiguate between a CDN load failure and a delayed call to
|
|
8
|
+
// OneSignal#init.
|
|
9
|
+
let isOneSignalScriptFailed = false;
|
|
10
|
+
const doesOneSignalExist = () => {
|
|
11
|
+
if (window["OneSignal"]) {
|
|
12
|
+
return true;
|
|
13
|
+
}
|
|
14
|
+
return false;
|
|
15
|
+
};
|
|
16
|
+
const handleOnLoad = (resolve, options) => {
|
|
17
|
+
isOneSignalInitialized = true;
|
|
18
|
+
// OneSignal is assumed to be loaded correctly because this method
|
|
19
|
+
// is called after the script is successfully loaded by CDN, but
|
|
20
|
+
// just in case.
|
|
21
|
+
window["OneSignal"] = window["OneSignal"] || [];
|
|
22
|
+
window["OneSignal"].push(() => {
|
|
23
|
+
window["OneSignal"].init(options);
|
|
24
|
+
});
|
|
25
|
+
window["OneSignal"].push(() => {
|
|
26
|
+
processQueuedOneSignalFunctions();
|
|
27
|
+
resolve();
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
const handleOnError = (resolve) => {
|
|
31
|
+
isOneSignalScriptFailed = true;
|
|
32
|
+
// Ensure that any unresolved functions are cleared from the queue,
|
|
33
|
+
// even in the event of a CDN load failure.
|
|
34
|
+
processQueuedOneSignalFunctions();
|
|
35
|
+
resolve();
|
|
13
36
|
};
|
|
14
37
|
const processQueuedOneSignalFunctions = () => {
|
|
15
38
|
reactOneSignalFunctionQueue.forEach(element => {
|
|
@@ -24,46 +47,36 @@ const processQueuedOneSignalFunctions = () => {
|
|
|
24
47
|
}
|
|
25
48
|
});
|
|
26
49
|
};
|
|
27
|
-
const doesOneSignalExist = () => {
|
|
28
|
-
if (window["OneSignal"]) {
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
return false;
|
|
32
|
-
};
|
|
33
|
-
const setupOneSignalIfMissing = () => {
|
|
34
|
-
if (!doesOneSignalExist()) {
|
|
35
|
-
window["OneSignal"] = window["OneSignal"] || [];
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
50
|
const init = (options) => new Promise(resolve => {
|
|
39
51
|
if (isOneSignalInitialized) {
|
|
52
|
+
resolve();
|
|
40
53
|
return;
|
|
41
54
|
}
|
|
42
55
|
if (!options || !options.appId) {
|
|
43
56
|
throw new Error('You need to provide your OneSignal appId.');
|
|
44
57
|
}
|
|
45
58
|
if (!document) {
|
|
59
|
+
resolve();
|
|
46
60
|
return;
|
|
47
61
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
isOneSignalInitialized = true;
|
|
62
|
+
const script = document.createElement('script');
|
|
63
|
+
script.id = ONESIGNAL_SDK_ID;
|
|
64
|
+
script.src = ONE_SIGNAL_SCRIPT_SRC;
|
|
65
|
+
script.async = true;
|
|
66
|
+
script.onload = () => {
|
|
67
|
+
handleOnLoad(resolve, options);
|
|
68
|
+
};
|
|
69
|
+
// Always resolve whether or not the script is successfully initialized.
|
|
70
|
+
// This is important for users who may block cdn.onesignal.com w/ adblock.
|
|
71
|
+
script.onerror = () => {
|
|
72
|
+
handleOnError(resolve);
|
|
73
|
+
};
|
|
74
|
+
document.head.appendChild(script);
|
|
62
75
|
});
|
|
63
76
|
function on(event, listener) {
|
|
64
77
|
if (!doesOneSignalExist()) {
|
|
65
78
|
reactOneSignalFunctionQueue.push({
|
|
66
|
-
name:
|
|
79
|
+
name: 'on',
|
|
67
80
|
args: arguments,
|
|
68
81
|
});
|
|
69
82
|
return;
|
|
@@ -75,7 +88,7 @@ function on(event, listener) {
|
|
|
75
88
|
function off(event, listener) {
|
|
76
89
|
if (!doesOneSignalExist()) {
|
|
77
90
|
reactOneSignalFunctionQueue.push({
|
|
78
|
-
name:
|
|
91
|
+
name: 'off',
|
|
79
92
|
args: arguments,
|
|
80
93
|
});
|
|
81
94
|
return;
|
|
@@ -87,7 +100,7 @@ function off(event, listener) {
|
|
|
87
100
|
function once(event, listener) {
|
|
88
101
|
if (!doesOneSignalExist()) {
|
|
89
102
|
reactOneSignalFunctionQueue.push({
|
|
90
|
-
name:
|
|
103
|
+
name: 'once',
|
|
91
104
|
args: arguments,
|
|
92
105
|
});
|
|
93
106
|
return;
|
|
@@ -98,9 +111,13 @@ function once(event, listener) {
|
|
|
98
111
|
}
|
|
99
112
|
function isPushNotificationsEnabled(callback) {
|
|
100
113
|
return new Promise((resolve, reject) => {
|
|
114
|
+
if (isOneSignalScriptFailed) {
|
|
115
|
+
resolve();
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
101
118
|
if (!doesOneSignalExist()) {
|
|
102
119
|
reactOneSignalFunctionQueue.push({
|
|
103
|
-
name:
|
|
120
|
+
name: 'isPushNotificationsEnabled',
|
|
104
121
|
args: arguments,
|
|
105
122
|
promiseResolver: resolve,
|
|
106
123
|
});
|
|
@@ -120,9 +137,13 @@ function isPushNotificationsEnabled(callback) {
|
|
|
120
137
|
}
|
|
121
138
|
function showHttpPrompt(options) {
|
|
122
139
|
return new Promise((resolve, reject) => {
|
|
140
|
+
if (isOneSignalScriptFailed) {
|
|
141
|
+
resolve();
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
123
144
|
if (!doesOneSignalExist()) {
|
|
124
145
|
reactOneSignalFunctionQueue.push({
|
|
125
|
-
name:
|
|
146
|
+
name: 'showHttpPrompt',
|
|
126
147
|
args: arguments,
|
|
127
148
|
promiseResolver: resolve,
|
|
128
149
|
});
|
|
@@ -142,9 +163,13 @@ function showHttpPrompt(options) {
|
|
|
142
163
|
}
|
|
143
164
|
function registerForPushNotifications(options) {
|
|
144
165
|
return new Promise((resolve, reject) => {
|
|
166
|
+
if (isOneSignalScriptFailed) {
|
|
167
|
+
resolve();
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
145
170
|
if (!doesOneSignalExist()) {
|
|
146
171
|
reactOneSignalFunctionQueue.push({
|
|
147
|
-
name:
|
|
172
|
+
name: 'registerForPushNotifications',
|
|
148
173
|
args: arguments,
|
|
149
174
|
promiseResolver: resolve,
|
|
150
175
|
});
|
|
@@ -164,9 +189,13 @@ function registerForPushNotifications(options) {
|
|
|
164
189
|
}
|
|
165
190
|
function setDefaultNotificationUrl(url) {
|
|
166
191
|
return new Promise((resolve, reject) => {
|
|
192
|
+
if (isOneSignalScriptFailed) {
|
|
193
|
+
resolve();
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
167
196
|
if (!doesOneSignalExist()) {
|
|
168
197
|
reactOneSignalFunctionQueue.push({
|
|
169
|
-
name:
|
|
198
|
+
name: 'setDefaultNotificationUrl',
|
|
170
199
|
args: arguments,
|
|
171
200
|
promiseResolver: resolve,
|
|
172
201
|
});
|
|
@@ -186,9 +215,13 @@ function setDefaultNotificationUrl(url) {
|
|
|
186
215
|
}
|
|
187
216
|
function setDefaultTitle(title) {
|
|
188
217
|
return new Promise((resolve, reject) => {
|
|
218
|
+
if (isOneSignalScriptFailed) {
|
|
219
|
+
resolve();
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
189
222
|
if (!doesOneSignalExist()) {
|
|
190
223
|
reactOneSignalFunctionQueue.push({
|
|
191
|
-
name:
|
|
224
|
+
name: 'setDefaultTitle',
|
|
192
225
|
args: arguments,
|
|
193
226
|
promiseResolver: resolve,
|
|
194
227
|
});
|
|
@@ -208,9 +241,13 @@ function setDefaultTitle(title) {
|
|
|
208
241
|
}
|
|
209
242
|
function getTags(callback) {
|
|
210
243
|
return new Promise((resolve, reject) => {
|
|
244
|
+
if (isOneSignalScriptFailed) {
|
|
245
|
+
resolve();
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
211
248
|
if (!doesOneSignalExist()) {
|
|
212
249
|
reactOneSignalFunctionQueue.push({
|
|
213
|
-
name:
|
|
250
|
+
name: 'getTags',
|
|
214
251
|
args: arguments,
|
|
215
252
|
promiseResolver: resolve,
|
|
216
253
|
});
|
|
@@ -230,9 +267,13 @@ function getTags(callback) {
|
|
|
230
267
|
}
|
|
231
268
|
function sendTag(key, value, callback) {
|
|
232
269
|
return new Promise((resolve, reject) => {
|
|
270
|
+
if (isOneSignalScriptFailed) {
|
|
271
|
+
resolve();
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
233
274
|
if (!doesOneSignalExist()) {
|
|
234
275
|
reactOneSignalFunctionQueue.push({
|
|
235
|
-
name:
|
|
276
|
+
name: 'sendTag',
|
|
236
277
|
args: arguments,
|
|
237
278
|
promiseResolver: resolve,
|
|
238
279
|
});
|
|
@@ -252,9 +293,13 @@ function sendTag(key, value, callback) {
|
|
|
252
293
|
}
|
|
253
294
|
function sendTags(tags, callback) {
|
|
254
295
|
return new Promise((resolve, reject) => {
|
|
296
|
+
if (isOneSignalScriptFailed) {
|
|
297
|
+
resolve();
|
|
298
|
+
return;
|
|
299
|
+
}
|
|
255
300
|
if (!doesOneSignalExist()) {
|
|
256
301
|
reactOneSignalFunctionQueue.push({
|
|
257
|
-
name:
|
|
302
|
+
name: 'sendTags',
|
|
258
303
|
args: arguments,
|
|
259
304
|
promiseResolver: resolve,
|
|
260
305
|
});
|
|
@@ -274,9 +319,13 @@ function sendTags(tags, callback) {
|
|
|
274
319
|
}
|
|
275
320
|
function deleteTag(tag) {
|
|
276
321
|
return new Promise((resolve, reject) => {
|
|
322
|
+
if (isOneSignalScriptFailed) {
|
|
323
|
+
resolve();
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
277
326
|
if (!doesOneSignalExist()) {
|
|
278
327
|
reactOneSignalFunctionQueue.push({
|
|
279
|
-
name:
|
|
328
|
+
name: 'deleteTag',
|
|
280
329
|
args: arguments,
|
|
281
330
|
promiseResolver: resolve,
|
|
282
331
|
});
|
|
@@ -296,9 +345,13 @@ function deleteTag(tag) {
|
|
|
296
345
|
}
|
|
297
346
|
function deleteTags(tags, callback) {
|
|
298
347
|
return new Promise((resolve, reject) => {
|
|
348
|
+
if (isOneSignalScriptFailed) {
|
|
349
|
+
resolve();
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
299
352
|
if (!doesOneSignalExist()) {
|
|
300
353
|
reactOneSignalFunctionQueue.push({
|
|
301
|
-
name:
|
|
354
|
+
name: 'deleteTags',
|
|
302
355
|
args: arguments,
|
|
303
356
|
promiseResolver: resolve,
|
|
304
357
|
});
|
|
@@ -318,9 +371,13 @@ function deleteTags(tags, callback) {
|
|
|
318
371
|
}
|
|
319
372
|
function addListenerForNotificationOpened(callback) {
|
|
320
373
|
return new Promise((resolve, reject) => {
|
|
374
|
+
if (isOneSignalScriptFailed) {
|
|
375
|
+
resolve();
|
|
376
|
+
return;
|
|
377
|
+
}
|
|
321
378
|
if (!doesOneSignalExist()) {
|
|
322
379
|
reactOneSignalFunctionQueue.push({
|
|
323
|
-
name:
|
|
380
|
+
name: 'addListenerForNotificationOpened',
|
|
324
381
|
args: arguments,
|
|
325
382
|
promiseResolver: resolve,
|
|
326
383
|
});
|
|
@@ -340,9 +397,13 @@ function addListenerForNotificationOpened(callback) {
|
|
|
340
397
|
}
|
|
341
398
|
function setSubscription(newSubscription) {
|
|
342
399
|
return new Promise((resolve, reject) => {
|
|
400
|
+
if (isOneSignalScriptFailed) {
|
|
401
|
+
resolve();
|
|
402
|
+
return;
|
|
403
|
+
}
|
|
343
404
|
if (!doesOneSignalExist()) {
|
|
344
405
|
reactOneSignalFunctionQueue.push({
|
|
345
|
-
name:
|
|
406
|
+
name: 'setSubscription',
|
|
346
407
|
args: arguments,
|
|
347
408
|
promiseResolver: resolve,
|
|
348
409
|
});
|
|
@@ -362,9 +423,13 @@ function setSubscription(newSubscription) {
|
|
|
362
423
|
}
|
|
363
424
|
function showHttpPermissionRequest(options) {
|
|
364
425
|
return new Promise((resolve, reject) => {
|
|
426
|
+
if (isOneSignalScriptFailed) {
|
|
427
|
+
resolve();
|
|
428
|
+
return;
|
|
429
|
+
}
|
|
365
430
|
if (!doesOneSignalExist()) {
|
|
366
431
|
reactOneSignalFunctionQueue.push({
|
|
367
|
-
name:
|
|
432
|
+
name: 'showHttpPermissionRequest',
|
|
368
433
|
args: arguments,
|
|
369
434
|
promiseResolver: resolve,
|
|
370
435
|
});
|
|
@@ -384,9 +449,13 @@ function showHttpPermissionRequest(options) {
|
|
|
384
449
|
}
|
|
385
450
|
function showNativePrompt() {
|
|
386
451
|
return new Promise((resolve, reject) => {
|
|
452
|
+
if (isOneSignalScriptFailed) {
|
|
453
|
+
resolve();
|
|
454
|
+
return;
|
|
455
|
+
}
|
|
387
456
|
if (!doesOneSignalExist()) {
|
|
388
457
|
reactOneSignalFunctionQueue.push({
|
|
389
|
-
name:
|
|
458
|
+
name: 'showNativePrompt',
|
|
390
459
|
args: arguments,
|
|
391
460
|
promiseResolver: resolve,
|
|
392
461
|
});
|
|
@@ -406,9 +475,13 @@ function showNativePrompt() {
|
|
|
406
475
|
}
|
|
407
476
|
function showSlidedownPrompt(options) {
|
|
408
477
|
return new Promise((resolve, reject) => {
|
|
478
|
+
if (isOneSignalScriptFailed) {
|
|
479
|
+
resolve();
|
|
480
|
+
return;
|
|
481
|
+
}
|
|
409
482
|
if (!doesOneSignalExist()) {
|
|
410
483
|
reactOneSignalFunctionQueue.push({
|
|
411
|
-
name:
|
|
484
|
+
name: 'showSlidedownPrompt',
|
|
412
485
|
args: arguments,
|
|
413
486
|
promiseResolver: resolve,
|
|
414
487
|
});
|
|
@@ -428,9 +501,13 @@ function showSlidedownPrompt(options) {
|
|
|
428
501
|
}
|
|
429
502
|
function showCategorySlidedown(options) {
|
|
430
503
|
return new Promise((resolve, reject) => {
|
|
504
|
+
if (isOneSignalScriptFailed) {
|
|
505
|
+
resolve();
|
|
506
|
+
return;
|
|
507
|
+
}
|
|
431
508
|
if (!doesOneSignalExist()) {
|
|
432
509
|
reactOneSignalFunctionQueue.push({
|
|
433
|
-
name:
|
|
510
|
+
name: 'showCategorySlidedown',
|
|
434
511
|
args: arguments,
|
|
435
512
|
promiseResolver: resolve,
|
|
436
513
|
});
|
|
@@ -450,9 +527,13 @@ function showCategorySlidedown(options) {
|
|
|
450
527
|
}
|
|
451
528
|
function showSmsSlidedown(options) {
|
|
452
529
|
return new Promise((resolve, reject) => {
|
|
530
|
+
if (isOneSignalScriptFailed) {
|
|
531
|
+
resolve();
|
|
532
|
+
return;
|
|
533
|
+
}
|
|
453
534
|
if (!doesOneSignalExist()) {
|
|
454
535
|
reactOneSignalFunctionQueue.push({
|
|
455
|
-
name:
|
|
536
|
+
name: 'showSmsSlidedown',
|
|
456
537
|
args: arguments,
|
|
457
538
|
promiseResolver: resolve,
|
|
458
539
|
});
|
|
@@ -472,9 +553,13 @@ function showSmsSlidedown(options) {
|
|
|
472
553
|
}
|
|
473
554
|
function showEmailSlidedown(options) {
|
|
474
555
|
return new Promise((resolve, reject) => {
|
|
556
|
+
if (isOneSignalScriptFailed) {
|
|
557
|
+
resolve();
|
|
558
|
+
return;
|
|
559
|
+
}
|
|
475
560
|
if (!doesOneSignalExist()) {
|
|
476
561
|
reactOneSignalFunctionQueue.push({
|
|
477
|
-
name:
|
|
562
|
+
name: 'showEmailSlidedown',
|
|
478
563
|
args: arguments,
|
|
479
564
|
promiseResolver: resolve,
|
|
480
565
|
});
|
|
@@ -494,9 +579,13 @@ function showEmailSlidedown(options) {
|
|
|
494
579
|
}
|
|
495
580
|
function showSmsAndEmailSlidedown(options) {
|
|
496
581
|
return new Promise((resolve, reject) => {
|
|
582
|
+
if (isOneSignalScriptFailed) {
|
|
583
|
+
resolve();
|
|
584
|
+
return;
|
|
585
|
+
}
|
|
497
586
|
if (!doesOneSignalExist()) {
|
|
498
587
|
reactOneSignalFunctionQueue.push({
|
|
499
|
-
name:
|
|
588
|
+
name: 'showSmsAndEmailSlidedown',
|
|
500
589
|
args: arguments,
|
|
501
590
|
promiseResolver: resolve,
|
|
502
591
|
});
|
|
@@ -516,9 +605,13 @@ function showSmsAndEmailSlidedown(options) {
|
|
|
516
605
|
}
|
|
517
606
|
function getNotificationPermission(onComplete) {
|
|
518
607
|
return new Promise((resolve, reject) => {
|
|
608
|
+
if (isOneSignalScriptFailed) {
|
|
609
|
+
resolve();
|
|
610
|
+
return;
|
|
611
|
+
}
|
|
519
612
|
if (!doesOneSignalExist()) {
|
|
520
613
|
reactOneSignalFunctionQueue.push({
|
|
521
|
-
name:
|
|
614
|
+
name: 'getNotificationPermission',
|
|
522
615
|
args: arguments,
|
|
523
616
|
promiseResolver: resolve,
|
|
524
617
|
});
|
|
@@ -538,9 +631,13 @@ function getNotificationPermission(onComplete) {
|
|
|
538
631
|
}
|
|
539
632
|
function getUserId(callback) {
|
|
540
633
|
return new Promise((resolve, reject) => {
|
|
634
|
+
if (isOneSignalScriptFailed) {
|
|
635
|
+
resolve();
|
|
636
|
+
return;
|
|
637
|
+
}
|
|
541
638
|
if (!doesOneSignalExist()) {
|
|
542
639
|
reactOneSignalFunctionQueue.push({
|
|
543
|
-
name:
|
|
640
|
+
name: 'getUserId',
|
|
544
641
|
args: arguments,
|
|
545
642
|
promiseResolver: resolve,
|
|
546
643
|
});
|
|
@@ -560,9 +657,13 @@ function getUserId(callback) {
|
|
|
560
657
|
}
|
|
561
658
|
function getSubscription(callback) {
|
|
562
659
|
return new Promise((resolve, reject) => {
|
|
660
|
+
if (isOneSignalScriptFailed) {
|
|
661
|
+
resolve();
|
|
662
|
+
return;
|
|
663
|
+
}
|
|
563
664
|
if (!doesOneSignalExist()) {
|
|
564
665
|
reactOneSignalFunctionQueue.push({
|
|
565
|
-
name:
|
|
666
|
+
name: 'getSubscription',
|
|
566
667
|
args: arguments,
|
|
567
668
|
promiseResolver: resolve,
|
|
568
669
|
});
|
|
@@ -582,9 +683,13 @@ function getSubscription(callback) {
|
|
|
582
683
|
}
|
|
583
684
|
function setEmail(email, options) {
|
|
584
685
|
return new Promise((resolve, reject) => {
|
|
686
|
+
if (isOneSignalScriptFailed) {
|
|
687
|
+
resolve();
|
|
688
|
+
return;
|
|
689
|
+
}
|
|
585
690
|
if (!doesOneSignalExist()) {
|
|
586
691
|
reactOneSignalFunctionQueue.push({
|
|
587
|
-
name:
|
|
692
|
+
name: 'setEmail',
|
|
588
693
|
args: arguments,
|
|
589
694
|
promiseResolver: resolve,
|
|
590
695
|
});
|
|
@@ -604,9 +709,13 @@ function setEmail(email, options) {
|
|
|
604
709
|
}
|
|
605
710
|
function setSMSNumber(smsNumber, options) {
|
|
606
711
|
return new Promise((resolve, reject) => {
|
|
712
|
+
if (isOneSignalScriptFailed) {
|
|
713
|
+
resolve();
|
|
714
|
+
return;
|
|
715
|
+
}
|
|
607
716
|
if (!doesOneSignalExist()) {
|
|
608
717
|
reactOneSignalFunctionQueue.push({
|
|
609
|
-
name:
|
|
718
|
+
name: 'setSMSNumber',
|
|
610
719
|
args: arguments,
|
|
611
720
|
promiseResolver: resolve,
|
|
612
721
|
});
|
|
@@ -626,9 +735,13 @@ function setSMSNumber(smsNumber, options) {
|
|
|
626
735
|
}
|
|
627
736
|
function logoutEmail() {
|
|
628
737
|
return new Promise((resolve, reject) => {
|
|
738
|
+
if (isOneSignalScriptFailed) {
|
|
739
|
+
resolve();
|
|
740
|
+
return;
|
|
741
|
+
}
|
|
629
742
|
if (!doesOneSignalExist()) {
|
|
630
743
|
reactOneSignalFunctionQueue.push({
|
|
631
|
-
name:
|
|
744
|
+
name: 'logoutEmail',
|
|
632
745
|
args: arguments,
|
|
633
746
|
promiseResolver: resolve,
|
|
634
747
|
});
|
|
@@ -648,9 +761,13 @@ function logoutEmail() {
|
|
|
648
761
|
}
|
|
649
762
|
function logoutSMS() {
|
|
650
763
|
return new Promise((resolve, reject) => {
|
|
764
|
+
if (isOneSignalScriptFailed) {
|
|
765
|
+
resolve();
|
|
766
|
+
return;
|
|
767
|
+
}
|
|
651
768
|
if (!doesOneSignalExist()) {
|
|
652
769
|
reactOneSignalFunctionQueue.push({
|
|
653
|
-
name:
|
|
770
|
+
name: 'logoutSMS',
|
|
654
771
|
args: arguments,
|
|
655
772
|
promiseResolver: resolve,
|
|
656
773
|
});
|
|
@@ -670,9 +787,13 @@ function logoutSMS() {
|
|
|
670
787
|
}
|
|
671
788
|
function setExternalUserId(externalUserId, authHash) {
|
|
672
789
|
return new Promise((resolve, reject) => {
|
|
790
|
+
if (isOneSignalScriptFailed) {
|
|
791
|
+
resolve();
|
|
792
|
+
return;
|
|
793
|
+
}
|
|
673
794
|
if (!doesOneSignalExist()) {
|
|
674
795
|
reactOneSignalFunctionQueue.push({
|
|
675
|
-
name:
|
|
796
|
+
name: 'setExternalUserId',
|
|
676
797
|
args: arguments,
|
|
677
798
|
promiseResolver: resolve,
|
|
678
799
|
});
|
|
@@ -692,9 +813,13 @@ function setExternalUserId(externalUserId, authHash) {
|
|
|
692
813
|
}
|
|
693
814
|
function removeExternalUserId() {
|
|
694
815
|
return new Promise((resolve, reject) => {
|
|
816
|
+
if (isOneSignalScriptFailed) {
|
|
817
|
+
resolve();
|
|
818
|
+
return;
|
|
819
|
+
}
|
|
695
820
|
if (!doesOneSignalExist()) {
|
|
696
821
|
reactOneSignalFunctionQueue.push({
|
|
697
|
-
name:
|
|
822
|
+
name: 'removeExternalUserId',
|
|
698
823
|
args: arguments,
|
|
699
824
|
promiseResolver: resolve,
|
|
700
825
|
});
|
|
@@ -714,9 +839,13 @@ function removeExternalUserId() {
|
|
|
714
839
|
}
|
|
715
840
|
function getExternalUserId() {
|
|
716
841
|
return new Promise((resolve, reject) => {
|
|
842
|
+
if (isOneSignalScriptFailed) {
|
|
843
|
+
resolve();
|
|
844
|
+
return;
|
|
845
|
+
}
|
|
717
846
|
if (!doesOneSignalExist()) {
|
|
718
847
|
reactOneSignalFunctionQueue.push({
|
|
719
|
-
name:
|
|
848
|
+
name: 'getExternalUserId',
|
|
720
849
|
args: arguments,
|
|
721
850
|
promiseResolver: resolve,
|
|
722
851
|
});
|
|
@@ -736,9 +865,13 @@ function getExternalUserId() {
|
|
|
736
865
|
}
|
|
737
866
|
function provideUserConsent(consent) {
|
|
738
867
|
return new Promise((resolve, reject) => {
|
|
868
|
+
if (isOneSignalScriptFailed) {
|
|
869
|
+
resolve();
|
|
870
|
+
return;
|
|
871
|
+
}
|
|
739
872
|
if (!doesOneSignalExist()) {
|
|
740
873
|
reactOneSignalFunctionQueue.push({
|
|
741
|
-
name:
|
|
874
|
+
name: 'provideUserConsent',
|
|
742
875
|
args: arguments,
|
|
743
876
|
promiseResolver: resolve,
|
|
744
877
|
});
|
|
@@ -758,9 +891,13 @@ function provideUserConsent(consent) {
|
|
|
758
891
|
}
|
|
759
892
|
function getEmailId(callback) {
|
|
760
893
|
return new Promise((resolve, reject) => {
|
|
894
|
+
if (isOneSignalScriptFailed) {
|
|
895
|
+
resolve();
|
|
896
|
+
return;
|
|
897
|
+
}
|
|
761
898
|
if (!doesOneSignalExist()) {
|
|
762
899
|
reactOneSignalFunctionQueue.push({
|
|
763
|
-
name:
|
|
900
|
+
name: 'getEmailId',
|
|
764
901
|
args: arguments,
|
|
765
902
|
promiseResolver: resolve,
|
|
766
903
|
});
|
|
@@ -780,9 +917,13 @@ function getEmailId(callback) {
|
|
|
780
917
|
}
|
|
781
918
|
function getSMSId(callback) {
|
|
782
919
|
return new Promise((resolve, reject) => {
|
|
920
|
+
if (isOneSignalScriptFailed) {
|
|
921
|
+
resolve();
|
|
922
|
+
return;
|
|
923
|
+
}
|
|
783
924
|
if (!doesOneSignalExist()) {
|
|
784
925
|
reactOneSignalFunctionQueue.push({
|
|
785
|
-
name:
|
|
926
|
+
name: 'getSMSId',
|
|
786
927
|
args: arguments,
|
|
787
928
|
promiseResolver: resolve,
|
|
788
929
|
});
|
|
@@ -802,9 +943,13 @@ function getSMSId(callback) {
|
|
|
802
943
|
}
|
|
803
944
|
function sendOutcome(outcomeName, outcomeWeight) {
|
|
804
945
|
return new Promise((resolve, reject) => {
|
|
946
|
+
if (isOneSignalScriptFailed) {
|
|
947
|
+
resolve();
|
|
948
|
+
return;
|
|
949
|
+
}
|
|
805
950
|
if (!doesOneSignalExist()) {
|
|
806
951
|
reactOneSignalFunctionQueue.push({
|
|
807
|
-
name:
|
|
952
|
+
name: 'sendOutcome',
|
|
808
953
|
args: arguments,
|
|
809
954
|
promiseResolver: resolve,
|
|
810
955
|
});
|