onesignal-vue 1.0.2 → 2.0.0-beta.1
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/.eslintrc.js +5 -2
- package/.github/ISSUE_TEMPLATE/ask-question.yml +19 -0
- package/.github/ISSUE_TEMPLATE/bug-report.yml +70 -0
- package/.github/ISSUE_TEMPLATE/general-feedback.yml +19 -0
- package/.github/ISSUE_TEMPLATE/workflows/Zapier.yml +34 -0
- package/.github/ISSUE_TEMPLATE/workflows/release-drafter.yml +41 -0
- package/.github/release-drafter.yml +27 -0
- package/.github/workflows/Zapier.yml +34 -0
- package/.github/workflows/release-drafter.yml +41 -0
- package/MigrationGuide.md +251 -0
- package/README.md +3 -0
- package/dist/index.d.ts +78 -56
- package/dist/index.js +402 -567
- package/dist/index.js.map +1 -1
- package/index.ts +528 -724
- package/package.json +1 -1
- package/tsconfig.json +1 -1
- package/dist/index.es.js +0 -9235
- package/dist/index.es.js.map +0 -1
package/index.ts
CHANGED
|
@@ -1,80 +1,136 @@
|
|
|
1
1
|
import Vue from 'vue';
|
|
2
2
|
|
|
3
3
|
const ONESIGNAL_SDK_ID = 'onesignal-sdk';
|
|
4
|
-
const ONE_SIGNAL_SCRIPT_SRC =
|
|
5
|
-
const ONESIGNAL_NOT_SETUP_ERROR = 'OneSignal is not setup correctly.';
|
|
6
|
-
const MAX_TIMEOUT = 30;
|
|
4
|
+
const ONE_SIGNAL_SCRIPT_SRC = "https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js";
|
|
7
5
|
|
|
8
|
-
|
|
6
|
+
// true if the script is successfully loaded from CDN.
|
|
9
7
|
let isOneSignalInitialized = false;
|
|
10
|
-
|
|
8
|
+
// true if the script fails to load from CDN. A separate flag is necessary
|
|
9
|
+
// to disambiguate between a CDN load failure and a delayed call to
|
|
10
|
+
// OneSignal#init.
|
|
11
|
+
let isOneSignalScriptFailed = false;
|
|
12
|
+
|
|
13
|
+
const VueApp: any = Vue;
|
|
14
|
+
|
|
15
|
+
window.OneSignalDeferred = window.OneSignalDeferred || [];
|
|
16
|
+
|
|
17
|
+
addSDKScript();
|
|
11
18
|
|
|
12
19
|
/* H E L P E R S */
|
|
13
20
|
|
|
14
|
-
|
|
21
|
+
function handleOnError() {
|
|
22
|
+
isOneSignalScriptFailed = true;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function addSDKScript() {
|
|
15
26
|
const script = document.createElement('script');
|
|
16
27
|
script.id = ONESIGNAL_SDK_ID;
|
|
28
|
+
script.defer = true;
|
|
17
29
|
script.src = ONE_SIGNAL_SCRIPT_SRC;
|
|
18
|
-
script.async = true;
|
|
19
|
-
document.head.appendChild(script);
|
|
20
|
-
}
|
|
21
30
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
31
|
+
// Always resolve whether or not the script is successfully initialized.
|
|
32
|
+
// This is important for users who may block cdn.onesignal.com w/ adblock.
|
|
33
|
+
script.onerror = () => {
|
|
34
|
+
handleOnError();
|
|
25
35
|
}
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
36
|
|
|
29
|
-
|
|
30
|
-
vueOneSignalFunctionQueue.forEach(element => {
|
|
31
|
-
const { name, args, promiseResolver } = element;
|
|
32
|
-
|
|
33
|
-
if (!!promiseResolver) {
|
|
34
|
-
OneSignalVue[name](...args).then((result: any) => {
|
|
35
|
-
promiseResolver(result);
|
|
36
|
-
});
|
|
37
|
-
} else {
|
|
38
|
-
window.OneSignal[name](...args);
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const setupOneSignalIfMissing = () => {
|
|
44
|
-
if (!doesOneSignalExist()) {
|
|
45
|
-
window.OneSignal = window.OneSignal || [];
|
|
46
|
-
}
|
|
37
|
+
document.head.appendChild(script);
|
|
47
38
|
}
|
|
48
39
|
|
|
49
40
|
/* T Y P E D E C L A R A T I O N S */
|
|
50
41
|
|
|
51
42
|
declare module 'vue/types/vue' {
|
|
52
43
|
interface Vue {
|
|
53
|
-
$OneSignal:
|
|
44
|
+
$OneSignal: IOneSignalOneSignal;
|
|
54
45
|
}
|
|
55
46
|
}
|
|
56
47
|
|
|
57
48
|
declare global {
|
|
58
49
|
interface Window {
|
|
59
|
-
|
|
50
|
+
OneSignalDeferred?: OneSignalDeferredLoadedCallback[];
|
|
51
|
+
safari?: {
|
|
52
|
+
pushNotification: any;
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* O N E S I G N A L A P I */
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* @PublicApi
|
|
61
|
+
*/
|
|
62
|
+
const init = (options: IInitObject): Promise<void> => {
|
|
63
|
+
if (isOneSignalInitialized) {
|
|
64
|
+
return Promise.reject(`OneSignal is already initialized.`);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if (!options || !options.appId) {
|
|
68
|
+
throw new Error('You need to provide your OneSignal appId.');
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (!document) {
|
|
72
|
+
return Promise.reject(`Document is not defined.`);
|
|
60
73
|
}
|
|
74
|
+
|
|
75
|
+
return new Promise<void>((resolve) => {
|
|
76
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
77
|
+
OneSignal.init(options).then(() => {
|
|
78
|
+
isOneSignalInitialized = true;
|
|
79
|
+
resolve();
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* The following code is copied directly from the native SDK source file BrowserSupportsPush.ts
|
|
87
|
+
* S T A R T
|
|
88
|
+
*/
|
|
89
|
+
|
|
90
|
+
// Checks if the browser supports push notifications by checking if specific
|
|
91
|
+
// classes and properties on them exist
|
|
92
|
+
function isPushNotificationsSupported() {
|
|
93
|
+
return supportsVapidPush() || supportsSafariPush();
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function isMacOSSafariInIframe(): boolean {
|
|
97
|
+
// Fallback detection for Safari on macOS in an iframe context
|
|
98
|
+
return window.top !== window && // isContextIframe
|
|
99
|
+
navigator.vendor === "Apple Computer, Inc." && // isSafari
|
|
100
|
+
navigator.platform === "MacIntel"; // isMacOS
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function supportsSafariPush(): boolean {
|
|
104
|
+
return (window.safari && typeof window.safari.pushNotification !== "undefined") ||
|
|
105
|
+
isMacOSSafariInIframe();
|
|
61
106
|
}
|
|
62
107
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
108
|
+
// Does the browser support the standard Push API
|
|
109
|
+
function supportsVapidPush(): boolean {
|
|
110
|
+
return typeof PushSubscriptionOptions !== "undefined" &&
|
|
111
|
+
PushSubscriptionOptions.prototype.hasOwnProperty("applicationServerKey");
|
|
112
|
+
}
|
|
113
|
+
/* E N D */
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* @PublicApi
|
|
117
|
+
*/
|
|
118
|
+
const isPushSupported = (): boolean => {
|
|
119
|
+
return isPushNotificationsSupported();
|
|
67
120
|
}
|
|
68
121
|
|
|
69
122
|
type Action<T> = (item: T) => void;
|
|
70
123
|
interface AutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; slidedownPromptOptions?: IOneSignalAutoPromptOptions; }
|
|
71
|
-
interface RegisterOptions { modalPrompt?: boolean; httpPermissionRequest?: boolean; slidedown?: boolean; autoAccept?: boolean }
|
|
72
|
-
interface SetSMSOptions { identifierAuthHash?: string; }
|
|
73
|
-
interface SetEmailOptions { identifierAuthHash?: string; emailAuthHash?: string; }
|
|
74
|
-
interface TagsObject<T> { [key: string]: T; }
|
|
75
124
|
interface IOneSignalAutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; isInUpdateMode?: boolean; categoryOptions?: IOneSignalCategories; }
|
|
76
125
|
interface IOneSignalCategories { positiveUpdateButton: string; negativeUpdateButton: string; savingButtonText: string; errorButtonText: string; updateMessage: string; tags: IOneSignalTagCategory[]; }
|
|
77
126
|
interface IOneSignalTagCategory { tag: string; label: string; checked?: boolean; }
|
|
127
|
+
type PushSubscriptionNamespaceProperties = { id: string | null | undefined; token: string | null | undefined; optedIn: boolean; };
|
|
128
|
+
type SubscriptionChangeEvent = { previous: PushSubscriptionNamespaceProperties; current: PushSubscriptionNamespaceProperties; };
|
|
129
|
+
type NotificationEventName = 'click' | 'willDisplay' | 'dismiss' | 'permissionChange' | 'permissionPromptDisplay';
|
|
130
|
+
interface NotificationButtonData { action?: string; title?: string; icon?: string; url?: string; }
|
|
131
|
+
interface StructuredNotification { id: string; content: string; heading?: string; url?: string; data?: object; rr?: string; icon?: string; image?: string; tag?: string; badge?: string; vibrate?: string; buttons?: NotificationButtonData[]; }
|
|
132
|
+
type SlidedownEventName = 'slidedownShown';
|
|
133
|
+
type OneSignalDeferredLoadedCallback = (onesignal: IOneSignalOneSignal) => void;
|
|
78
134
|
|
|
79
135
|
interface IInitObject {
|
|
80
136
|
appId: string;
|
|
@@ -97,787 +153,535 @@ interface IInitObject {
|
|
|
97
153
|
[key: string]: any;
|
|
98
154
|
}
|
|
99
155
|
|
|
100
|
-
interface
|
|
156
|
+
interface IOneSignalOneSignal {
|
|
157
|
+
login(externalId: string, jwtToken?: string): Promise<void>
|
|
158
|
+
logout(): Promise<void>
|
|
101
159
|
init(options: IInitObject): Promise<void>
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
160
|
+
setConsentGiven(consent: boolean): Promise<void>
|
|
161
|
+
setConsentRequired(requiresConsent: boolean): Promise<void>
|
|
162
|
+
Slidedown: IOneSignalSlidedown;
|
|
163
|
+
Notifications: IOneSignalNotifications;
|
|
164
|
+
Session: IOneSignalSession;
|
|
165
|
+
User: IOneSignalUser;
|
|
166
|
+
Debug: IOneSignalDebug;
|
|
167
|
+
[index: string]: any;
|
|
168
|
+
}
|
|
169
|
+
interface IOneSignalNotifications {
|
|
170
|
+
setDefaultUrl(url: string): Promise<void>
|
|
109
171
|
setDefaultTitle(title: string): Promise<void>
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
[
|
|
172
|
+
isPushSupported(): boolean
|
|
173
|
+
getPermissionStatus(onComplete: Action<NotificationPermission>): Promise<NotificationPermission>
|
|
174
|
+
requestPermission(): Promise<void>
|
|
175
|
+
addEventListener(event: NotificationEventName, listener: (obj: any) => void): void
|
|
176
|
+
removeEventListener(event: NotificationEventName, listener: (obj: any) => void): void
|
|
177
|
+
[index: string]: any;
|
|
178
|
+
}
|
|
179
|
+
interface IOneSignalSlidedown {
|
|
180
|
+
promptPush(options?: AutoPromptOptions): Promise<void>
|
|
181
|
+
promptPushCategories(options?: AutoPromptOptions): Promise<void>
|
|
182
|
+
promptSms(options?: AutoPromptOptions): Promise<void>
|
|
183
|
+
promptEmail(options?: AutoPromptOptions): Promise<void>
|
|
184
|
+
promptSmsAndEmail(options?: AutoPromptOptions): Promise<void>
|
|
185
|
+
addEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void
|
|
186
|
+
removeEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void
|
|
187
|
+
[index: string]: any;
|
|
188
|
+
}
|
|
189
|
+
interface IOneSignalDebug {
|
|
190
|
+
setLogLevel(logLevel: string): void
|
|
191
|
+
[index: string]: any;
|
|
192
|
+
}
|
|
193
|
+
interface IOneSignalSession {
|
|
194
|
+
sendOutcome(outcomeName: string, outcomeWeight?: number): Promise<void>
|
|
195
|
+
sendUniqueOutcome(outcomeName: string): Promise<void>
|
|
196
|
+
[index: string]: any;
|
|
197
|
+
}
|
|
198
|
+
interface IOneSignalUser {
|
|
199
|
+
addAlias(label: string, id: string): void
|
|
200
|
+
addAliases(aliases: { [key: string]: string }): void
|
|
201
|
+
removeAlias(label: string): void
|
|
202
|
+
removeAliases(labels: string[]): void
|
|
203
|
+
addEmail(email: string): void
|
|
204
|
+
removeEmail(email: string): void
|
|
205
|
+
addSms(smsNumber: string): void
|
|
206
|
+
removeSms(smsNumber: string): void
|
|
207
|
+
PushSubscription: IOneSignalPushSubscription;
|
|
208
|
+
[index: string]: any;
|
|
209
|
+
}
|
|
210
|
+
interface IOneSignalPushSubscription {
|
|
211
|
+
optIn(): Promise<void>
|
|
212
|
+
optOut(): Promise<void>
|
|
213
|
+
addEventListener(event: 'subscriptionChange', listener: (change: SubscriptionChangeEvent) => void): void
|
|
214
|
+
removeEventListener(event: 'subscriptionChange', listener: (change: SubscriptionChangeEvent) => void): void
|
|
215
|
+
[index: string]: any;
|
|
139
216
|
}
|
|
140
217
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
return new Promise<void>(resolve => {
|
|
146
|
-
if (isOneSignalInitialized) {
|
|
147
|
-
return;
|
|
218
|
+
function oneSignalLogin(externalId: string, jwtToken?: string): Promise<void> {
|
|
219
|
+
return new Promise(function (resolve, reject) {
|
|
220
|
+
if (isOneSignalScriptFailed) {
|
|
221
|
+
reject();
|
|
148
222
|
}
|
|
149
223
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
window.OneSignal.push(() => {
|
|
161
|
-
clearTimeout(timeout);
|
|
162
|
-
isOneSignalInitialized = true;
|
|
163
|
-
processQueuedOneSignalFunctions();
|
|
164
|
-
resolve();
|
|
165
|
-
});
|
|
224
|
+
try {
|
|
225
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
226
|
+
OneSignal.login(externalId, jwtToken)
|
|
227
|
+
.then(value => resolve(value))
|
|
228
|
+
.catch(error => reject(error));
|
|
229
|
+
});
|
|
230
|
+
} catch (error) {
|
|
231
|
+
reject(error);
|
|
232
|
+
}
|
|
166
233
|
});
|
|
167
234
|
}
|
|
168
235
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
args: arguments,
|
|
174
|
-
});
|
|
175
|
-
return;
|
|
236
|
+
function oneSignalLogout(): Promise<void> {
|
|
237
|
+
return new Promise(function (resolve, reject) {
|
|
238
|
+
if (isOneSignalScriptFailed) {
|
|
239
|
+
reject();
|
|
176
240
|
}
|
|
177
241
|
|
|
178
|
-
|
|
179
|
-
window.OneSignal
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
function off(event: string, listener: () => void): void {
|
|
184
|
-
if (!doesOneSignalExist()) {
|
|
185
|
-
vueOneSignalFunctionQueue.push({
|
|
186
|
-
name: 'off',
|
|
187
|
-
args: arguments,
|
|
242
|
+
try {
|
|
243
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
244
|
+
OneSignal.logout()
|
|
245
|
+
.then(value => resolve(value))
|
|
246
|
+
.catch(error => reject(error));
|
|
188
247
|
});
|
|
189
|
-
|
|
248
|
+
} catch (error) {
|
|
249
|
+
reject(error);
|
|
190
250
|
}
|
|
251
|
+
});
|
|
252
|
+
}
|
|
191
253
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
function once(event: string, listener: () => void): void {
|
|
198
|
-
if (!doesOneSignalExist()) {
|
|
199
|
-
vueOneSignalFunctionQueue.push({
|
|
200
|
-
name: 'once',
|
|
201
|
-
args: arguments,
|
|
202
|
-
});
|
|
203
|
-
return;
|
|
254
|
+
function oneSignalSetConsentGiven(consent: boolean): Promise<void> {
|
|
255
|
+
return new Promise(function (resolve, reject) {
|
|
256
|
+
if (isOneSignalScriptFailed) {
|
|
257
|
+
reject();
|
|
204
258
|
}
|
|
205
259
|
|
|
206
|
-
|
|
207
|
-
window.OneSignal
|
|
208
|
-
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
function isPushNotificationsEnabled(callback?: Action<boolean>): Promise<boolean> {
|
|
212
|
-
return new Promise(function (resolve, reject) {
|
|
213
|
-
if (!doesOneSignalExist()) {
|
|
214
|
-
vueOneSignalFunctionQueue.push({
|
|
215
|
-
name: 'isPushNotificationsEnabled',
|
|
216
|
-
args: arguments,
|
|
217
|
-
promiseResolver: resolve,
|
|
218
|
-
});
|
|
219
|
-
return;
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
window.OneSignal.push(() => {
|
|
223
|
-
window.OneSignal.isPushNotificationsEnabled(callback)
|
|
260
|
+
try {
|
|
261
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
262
|
+
OneSignal.setConsentGiven(consent)
|
|
224
263
|
.then(value => resolve(value))
|
|
225
264
|
.catch(error => reject(error));
|
|
226
265
|
});
|
|
227
|
-
})
|
|
228
|
-
|
|
266
|
+
} catch (error) {
|
|
267
|
+
reject(error);
|
|
268
|
+
}
|
|
269
|
+
});
|
|
270
|
+
}
|
|
229
271
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
args: arguments,
|
|
236
|
-
promiseResolver: resolve,
|
|
237
|
-
});
|
|
238
|
-
return;
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
window.OneSignal.push(() => {
|
|
242
|
-
window.OneSignal.showHttpPrompt(options)
|
|
243
|
-
.then(value => resolve(value))
|
|
244
|
-
.catch(error => reject(error));
|
|
245
|
-
});
|
|
246
|
-
});
|
|
247
|
-
}
|
|
272
|
+
function oneSignalSetConsentRequired(requiresConsent: boolean): Promise<void> {
|
|
273
|
+
return new Promise(function (resolve, reject) {
|
|
274
|
+
if (isOneSignalScriptFailed) {
|
|
275
|
+
reject();
|
|
276
|
+
}
|
|
248
277
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
vueOneSignalFunctionQueue.push({
|
|
253
|
-
name: 'registerForPushNotifications',
|
|
254
|
-
args: arguments,
|
|
255
|
-
promiseResolver: resolve,
|
|
256
|
-
});
|
|
257
|
-
return;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
window.OneSignal.push(() => {
|
|
261
|
-
window.OneSignal.registerForPushNotifications(options)
|
|
278
|
+
try {
|
|
279
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
280
|
+
OneSignal.setConsentRequired(requiresConsent)
|
|
262
281
|
.then(value => resolve(value))
|
|
263
282
|
.catch(error => reject(error));
|
|
264
283
|
});
|
|
265
|
-
})
|
|
266
|
-
|
|
284
|
+
} catch (error) {
|
|
285
|
+
reject(error);
|
|
286
|
+
}
|
|
287
|
+
});
|
|
288
|
+
}
|
|
267
289
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
args: arguments,
|
|
274
|
-
promiseResolver: resolve,
|
|
275
|
-
});
|
|
276
|
-
return;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
window.OneSignal.push(() => {
|
|
280
|
-
window.OneSignal.setDefaultNotificationUrl(url)
|
|
281
|
-
.then(value => resolve(value))
|
|
282
|
-
.catch(error => reject(error));
|
|
283
|
-
});
|
|
284
|
-
});
|
|
285
|
-
}
|
|
290
|
+
function slidedownPromptPush(options?: AutoPromptOptions): Promise<void> {
|
|
291
|
+
return new Promise(function (resolve, reject) {
|
|
292
|
+
if (isOneSignalScriptFailed) {
|
|
293
|
+
reject();
|
|
294
|
+
}
|
|
286
295
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
vueOneSignalFunctionQueue.push({
|
|
291
|
-
name: 'setDefaultTitle',
|
|
292
|
-
args: arguments,
|
|
293
|
-
promiseResolver: resolve,
|
|
294
|
-
});
|
|
295
|
-
return;
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
window.OneSignal.push(() => {
|
|
299
|
-
window.OneSignal.setDefaultTitle(title)
|
|
296
|
+
try {
|
|
297
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
298
|
+
OneSignal.Slidedown.promptPush(options)
|
|
300
299
|
.then(value => resolve(value))
|
|
301
300
|
.catch(error => reject(error));
|
|
302
301
|
});
|
|
303
|
-
})
|
|
304
|
-
|
|
302
|
+
} catch (error) {
|
|
303
|
+
reject(error);
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
}
|
|
305
307
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
args: arguments,
|
|
312
|
-
promiseResolver: resolve,
|
|
313
|
-
});
|
|
314
|
-
return;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
window.OneSignal.push(() => {
|
|
318
|
-
window.OneSignal.getTags(callback)
|
|
319
|
-
.then(value => resolve(value))
|
|
320
|
-
.catch(error => reject(error));
|
|
321
|
-
});
|
|
322
|
-
});
|
|
323
|
-
}
|
|
308
|
+
function slidedownPromptPushCategories(options?: AutoPromptOptions): Promise<void> {
|
|
309
|
+
return new Promise(function (resolve, reject) {
|
|
310
|
+
if (isOneSignalScriptFailed) {
|
|
311
|
+
reject();
|
|
312
|
+
}
|
|
324
313
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
vueOneSignalFunctionQueue.push({
|
|
329
|
-
name: 'sendTag',
|
|
330
|
-
args: arguments,
|
|
331
|
-
promiseResolver: resolve,
|
|
332
|
-
});
|
|
333
|
-
return;
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
window.OneSignal.push(() => {
|
|
337
|
-
window.OneSignal.sendTag(key, value, callback)
|
|
314
|
+
try {
|
|
315
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
316
|
+
OneSignal.Slidedown.promptPushCategories(options)
|
|
338
317
|
.then(value => resolve(value))
|
|
339
318
|
.catch(error => reject(error));
|
|
340
319
|
});
|
|
341
|
-
})
|
|
342
|
-
|
|
320
|
+
} catch (error) {
|
|
321
|
+
reject(error);
|
|
322
|
+
}
|
|
323
|
+
});
|
|
324
|
+
}
|
|
343
325
|
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
args: arguments,
|
|
350
|
-
promiseResolver: resolve,
|
|
351
|
-
});
|
|
352
|
-
return;
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
window.OneSignal.push(() => {
|
|
356
|
-
window.OneSignal.sendTags(tags, callback)
|
|
357
|
-
.then(value => resolve(value))
|
|
358
|
-
.catch(error => reject(error));
|
|
359
|
-
});
|
|
360
|
-
});
|
|
361
|
-
}
|
|
326
|
+
function slidedownPromptSms(options?: AutoPromptOptions): Promise<void> {
|
|
327
|
+
return new Promise(function (resolve, reject) {
|
|
328
|
+
if (isOneSignalScriptFailed) {
|
|
329
|
+
reject();
|
|
330
|
+
}
|
|
362
331
|
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
vueOneSignalFunctionQueue.push({
|
|
367
|
-
name: 'deleteTag',
|
|
368
|
-
args: arguments,
|
|
369
|
-
promiseResolver: resolve,
|
|
370
|
-
});
|
|
371
|
-
return;
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
window.OneSignal.push(() => {
|
|
375
|
-
window.OneSignal.deleteTag(tag)
|
|
332
|
+
try {
|
|
333
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
334
|
+
OneSignal.Slidedown.promptSms(options)
|
|
376
335
|
.then(value => resolve(value))
|
|
377
336
|
.catch(error => reject(error));
|
|
378
337
|
});
|
|
379
|
-
})
|
|
380
|
-
|
|
338
|
+
} catch (error) {
|
|
339
|
+
reject(error);
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
}
|
|
381
343
|
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
args: arguments,
|
|
388
|
-
promiseResolver: resolve,
|
|
389
|
-
});
|
|
390
|
-
return;
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
window.OneSignal.push(() => {
|
|
394
|
-
window.OneSignal.deleteTags(tags, callback)
|
|
395
|
-
.then(value => resolve(value))
|
|
396
|
-
.catch(error => reject(error));
|
|
397
|
-
});
|
|
398
|
-
});
|
|
399
|
-
}
|
|
344
|
+
function slidedownPromptEmail(options?: AutoPromptOptions): Promise<void> {
|
|
345
|
+
return new Promise(function (resolve, reject) {
|
|
346
|
+
if (isOneSignalScriptFailed) {
|
|
347
|
+
reject();
|
|
348
|
+
}
|
|
400
349
|
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
vueOneSignalFunctionQueue.push({
|
|
405
|
-
name: 'addListenerForNotificationOpened',
|
|
406
|
-
args: arguments,
|
|
407
|
-
promiseResolver: resolve,
|
|
408
|
-
});
|
|
409
|
-
return;
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
window.OneSignal.push(() => {
|
|
413
|
-
window.OneSignal.addListenerForNotificationOpened(callback)
|
|
350
|
+
try {
|
|
351
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
352
|
+
OneSignal.Slidedown.promptEmail(options)
|
|
414
353
|
.then(value => resolve(value))
|
|
415
354
|
.catch(error => reject(error));
|
|
416
355
|
});
|
|
417
|
-
})
|
|
418
|
-
|
|
356
|
+
} catch (error) {
|
|
357
|
+
reject(error);
|
|
358
|
+
}
|
|
359
|
+
});
|
|
360
|
+
}
|
|
419
361
|
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
args: arguments,
|
|
426
|
-
promiseResolver: resolve,
|
|
427
|
-
});
|
|
428
|
-
return;
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
window.OneSignal.push(() => {
|
|
432
|
-
window.OneSignal.setSubscription(newSubscription)
|
|
433
|
-
.then(value => resolve(value))
|
|
434
|
-
.catch(error => reject(error));
|
|
435
|
-
});
|
|
436
|
-
});
|
|
437
|
-
}
|
|
362
|
+
function slidedownPromptSmsAndEmail(options?: AutoPromptOptions): Promise<void> {
|
|
363
|
+
return new Promise(function (resolve, reject) {
|
|
364
|
+
if (isOneSignalScriptFailed) {
|
|
365
|
+
reject();
|
|
366
|
+
}
|
|
438
367
|
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
vueOneSignalFunctionQueue.push({
|
|
443
|
-
name: 'showHttpPermissionRequest',
|
|
444
|
-
args: arguments,
|
|
445
|
-
promiseResolver: resolve,
|
|
446
|
-
});
|
|
447
|
-
return;
|
|
448
|
-
}
|
|
449
|
-
|
|
450
|
-
window.OneSignal.push(() => {
|
|
451
|
-
window.OneSignal.showHttpPermissionRequest(options)
|
|
368
|
+
try {
|
|
369
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
370
|
+
OneSignal.Slidedown.promptSmsAndEmail(options)
|
|
452
371
|
.then(value => resolve(value))
|
|
453
372
|
.catch(error => reject(error));
|
|
454
373
|
});
|
|
455
|
-
})
|
|
456
|
-
|
|
374
|
+
} catch (error) {
|
|
375
|
+
reject(error);
|
|
376
|
+
}
|
|
377
|
+
});
|
|
378
|
+
}
|
|
457
379
|
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
args: arguments,
|
|
464
|
-
promiseResolver: resolve,
|
|
465
|
-
});
|
|
466
|
-
return;
|
|
467
|
-
}
|
|
468
|
-
|
|
469
|
-
window.OneSignal.push(() => {
|
|
470
|
-
window.OneSignal.showNativePrompt()
|
|
471
|
-
.then(value => resolve(value))
|
|
472
|
-
.catch(error => reject(error));
|
|
473
|
-
});
|
|
474
|
-
});
|
|
475
|
-
}
|
|
380
|
+
function slidedownAddEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void {
|
|
381
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
382
|
+
OneSignal.Slidedown.addEventListener(event, listener)
|
|
383
|
+
});
|
|
384
|
+
}
|
|
476
385
|
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
args: arguments,
|
|
483
|
-
promiseResolver: resolve,
|
|
484
|
-
});
|
|
485
|
-
return;
|
|
486
|
-
}
|
|
487
|
-
|
|
488
|
-
window.OneSignal.push(() => {
|
|
489
|
-
window.OneSignal.showSlidedownPrompt(options)
|
|
490
|
-
.then(value => resolve(value))
|
|
491
|
-
.catch(error => reject(error));
|
|
492
|
-
});
|
|
493
|
-
});
|
|
494
|
-
}
|
|
386
|
+
function slidedownRemoveEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void {
|
|
387
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
388
|
+
OneSignal.Slidedown.removeEventListener(event, listener)
|
|
389
|
+
});
|
|
390
|
+
}
|
|
495
391
|
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
args: arguments,
|
|
502
|
-
promiseResolver: resolve,
|
|
503
|
-
});
|
|
504
|
-
return;
|
|
505
|
-
}
|
|
506
|
-
|
|
507
|
-
window.OneSignal.push(() => {
|
|
508
|
-
window.OneSignal.showCategorySlidedown(options)
|
|
509
|
-
.then(value => resolve(value))
|
|
510
|
-
.catch(error => reject(error));
|
|
511
|
-
});
|
|
512
|
-
});
|
|
513
|
-
}
|
|
392
|
+
function notificationsSetDefaultUrl(url: string): Promise<void> {
|
|
393
|
+
return new Promise(function (resolve, reject) {
|
|
394
|
+
if (isOneSignalScriptFailed) {
|
|
395
|
+
reject();
|
|
396
|
+
}
|
|
514
397
|
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
vueOneSignalFunctionQueue.push({
|
|
519
|
-
name: 'showSmsSlidedown',
|
|
520
|
-
args: arguments,
|
|
521
|
-
promiseResolver: resolve,
|
|
522
|
-
});
|
|
523
|
-
return;
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
window.OneSignal.push(() => {
|
|
527
|
-
window.OneSignal.showSmsSlidedown(options)
|
|
398
|
+
try {
|
|
399
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
400
|
+
OneSignal.Notifications.setDefaultUrl(url)
|
|
528
401
|
.then(value => resolve(value))
|
|
529
402
|
.catch(error => reject(error));
|
|
530
403
|
});
|
|
531
|
-
})
|
|
532
|
-
|
|
404
|
+
} catch (error) {
|
|
405
|
+
reject(error);
|
|
406
|
+
}
|
|
407
|
+
});
|
|
408
|
+
}
|
|
533
409
|
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
args: arguments,
|
|
540
|
-
promiseResolver: resolve,
|
|
541
|
-
});
|
|
542
|
-
return;
|
|
543
|
-
}
|
|
544
|
-
|
|
545
|
-
window.OneSignal.push(() => {
|
|
546
|
-
window.OneSignal.showEmailSlidedown(options)
|
|
547
|
-
.then(value => resolve(value))
|
|
548
|
-
.catch(error => reject(error));
|
|
549
|
-
});
|
|
550
|
-
});
|
|
551
|
-
}
|
|
410
|
+
function notificationsSetDefaultTitle(title: string): Promise<void> {
|
|
411
|
+
return new Promise(function (resolve, reject) {
|
|
412
|
+
if (isOneSignalScriptFailed) {
|
|
413
|
+
reject();
|
|
414
|
+
}
|
|
552
415
|
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
vueOneSignalFunctionQueue.push({
|
|
557
|
-
name: 'showSmsAndEmailSlidedown',
|
|
558
|
-
args: arguments,
|
|
559
|
-
promiseResolver: resolve,
|
|
560
|
-
});
|
|
561
|
-
return;
|
|
562
|
-
}
|
|
563
|
-
|
|
564
|
-
window.OneSignal.push(() => {
|
|
565
|
-
window.OneSignal.showSmsAndEmailSlidedown(options)
|
|
416
|
+
try {
|
|
417
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
418
|
+
OneSignal.Notifications.setDefaultTitle(title)
|
|
566
419
|
.then(value => resolve(value))
|
|
567
420
|
.catch(error => reject(error));
|
|
568
421
|
});
|
|
569
|
-
})
|
|
570
|
-
|
|
422
|
+
} catch (error) {
|
|
423
|
+
reject(error);
|
|
424
|
+
}
|
|
425
|
+
});
|
|
426
|
+
}
|
|
571
427
|
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
args: arguments,
|
|
578
|
-
promiseResolver: resolve,
|
|
579
|
-
});
|
|
580
|
-
return;
|
|
581
|
-
}
|
|
582
|
-
|
|
583
|
-
window.OneSignal.push(() => {
|
|
584
|
-
window.OneSignal.getNotificationPermission(onComplete)
|
|
585
|
-
.then(value => resolve(value))
|
|
586
|
-
.catch(error => reject(error));
|
|
587
|
-
});
|
|
588
|
-
});
|
|
589
|
-
}
|
|
428
|
+
function notificationsGetPermissionStatus(onComplete: Action<NotificationPermission>): Promise<NotificationPermission> {
|
|
429
|
+
return new Promise(function (resolve, reject) {
|
|
430
|
+
if (isOneSignalScriptFailed) {
|
|
431
|
+
reject();
|
|
432
|
+
}
|
|
590
433
|
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
vueOneSignalFunctionQueue.push({
|
|
595
|
-
name: 'getUserId',
|
|
596
|
-
args: arguments,
|
|
597
|
-
promiseResolver: resolve,
|
|
598
|
-
});
|
|
599
|
-
return;
|
|
600
|
-
}
|
|
601
|
-
|
|
602
|
-
window.OneSignal.push(() => {
|
|
603
|
-
window.OneSignal.getUserId(callback)
|
|
434
|
+
try {
|
|
435
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
436
|
+
OneSignal.Notifications.getPermissionStatus(onComplete)
|
|
604
437
|
.then(value => resolve(value))
|
|
605
438
|
.catch(error => reject(error));
|
|
606
439
|
});
|
|
607
|
-
})
|
|
608
|
-
|
|
440
|
+
} catch (error) {
|
|
441
|
+
reject(error);
|
|
442
|
+
}
|
|
443
|
+
});
|
|
444
|
+
}
|
|
609
445
|
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
args: arguments,
|
|
616
|
-
promiseResolver: resolve,
|
|
617
|
-
});
|
|
618
|
-
return;
|
|
619
|
-
}
|
|
620
|
-
|
|
621
|
-
window.OneSignal.push(() => {
|
|
622
|
-
window.OneSignal.getSubscription(callback)
|
|
623
|
-
.then(value => resolve(value))
|
|
624
|
-
.catch(error => reject(error));
|
|
625
|
-
});
|
|
626
|
-
});
|
|
627
|
-
}
|
|
446
|
+
function notificationsRequestPermission(): Promise<void> {
|
|
447
|
+
return new Promise(function (resolve, reject) {
|
|
448
|
+
if (isOneSignalScriptFailed) {
|
|
449
|
+
reject();
|
|
450
|
+
}
|
|
628
451
|
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
vueOneSignalFunctionQueue.push({
|
|
633
|
-
name: 'setEmail',
|
|
634
|
-
args: arguments,
|
|
635
|
-
promiseResolver: resolve,
|
|
636
|
-
});
|
|
637
|
-
return;
|
|
638
|
-
}
|
|
639
|
-
|
|
640
|
-
window.OneSignal.push(() => {
|
|
641
|
-
window.OneSignal.setEmail(email, options)
|
|
452
|
+
try {
|
|
453
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
454
|
+
OneSignal.Notifications.requestPermission()
|
|
642
455
|
.then(value => resolve(value))
|
|
643
456
|
.catch(error => reject(error));
|
|
644
457
|
});
|
|
645
|
-
})
|
|
646
|
-
|
|
458
|
+
} catch (error) {
|
|
459
|
+
reject(error);
|
|
460
|
+
}
|
|
461
|
+
});
|
|
462
|
+
}
|
|
647
463
|
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
vueOneSignalFunctionQueue.push({
|
|
652
|
-
name: 'setSMSNumber',
|
|
653
|
-
args: arguments,
|
|
654
|
-
promiseResolver: resolve,
|
|
655
|
-
});
|
|
656
|
-
return;
|
|
657
|
-
}
|
|
658
|
-
|
|
659
|
-
window.OneSignal.push(() => {
|
|
660
|
-
window.OneSignal.setSMSNumber(smsNumber, options)
|
|
661
|
-
.then(value => resolve(value))
|
|
662
|
-
.catch(error => reject(error));
|
|
663
|
-
});
|
|
664
|
-
});
|
|
665
|
-
}
|
|
464
|
+
function notificationsAddEventListener(event: 'click' | 'willDisplay' | 'dismiss', listener: (obj: StructuredNotification) => void): void;
|
|
465
|
+
function notificationsAddEventListener(event: 'permissionChange', listener: (obj: { to: NotificationPermission }) => void): void;
|
|
466
|
+
function notificationsAddEventListener(event: 'permissionPromptDisplay', listener: () => void): void;
|
|
666
467
|
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
args: arguments,
|
|
673
|
-
promiseResolver: resolve,
|
|
674
|
-
});
|
|
675
|
-
return;
|
|
676
|
-
}
|
|
677
|
-
|
|
678
|
-
window.OneSignal.push(() => {
|
|
679
|
-
window.OneSignal.logoutEmail()
|
|
680
|
-
.then(value => resolve(value))
|
|
681
|
-
.catch(error => reject(error));
|
|
682
|
-
});
|
|
683
|
-
});
|
|
684
|
-
}
|
|
468
|
+
function notificationsAddEventListener(event: NotificationEventName, listener: (obj: any) => void): void {
|
|
469
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
470
|
+
OneSignal.Notifications.addEventListener(event, listener)
|
|
471
|
+
});
|
|
472
|
+
}
|
|
685
473
|
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
vueOneSignalFunctionQueue.push({
|
|
690
|
-
name: 'logoutSMS',
|
|
691
|
-
args: arguments,
|
|
692
|
-
promiseResolver: resolve,
|
|
693
|
-
});
|
|
694
|
-
return;
|
|
695
|
-
}
|
|
696
|
-
|
|
697
|
-
window.OneSignal.push(() => {
|
|
698
|
-
window.OneSignal.logoutSMS()
|
|
699
|
-
.then(value => resolve(value))
|
|
700
|
-
.catch(error => reject(error));
|
|
701
|
-
});
|
|
702
|
-
});
|
|
703
|
-
}
|
|
474
|
+
function notificationsRemoveEventListener(event: 'click' | 'willDisplay' | 'dismiss', listener: (obj: StructuredNotification) => void): void;
|
|
475
|
+
function notificationsRemoveEventListener(event: 'permissionChange', listener: (obj: { to: NotificationPermission }) => void): void;
|
|
476
|
+
function notificationsRemoveEventListener(event: 'permissionPromptDisplay', listener: () => void): void;
|
|
704
477
|
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
args: arguments,
|
|
711
|
-
promiseResolver: resolve,
|
|
712
|
-
});
|
|
713
|
-
return;
|
|
714
|
-
}
|
|
715
|
-
|
|
716
|
-
window.OneSignal.push(() => {
|
|
717
|
-
window.OneSignal.setExternalUserId(externalUserId, authHash)
|
|
718
|
-
.then(value => resolve(value))
|
|
719
|
-
.catch(error => reject(error));
|
|
720
|
-
});
|
|
721
|
-
});
|
|
722
|
-
}
|
|
478
|
+
function notificationsRemoveEventListener(event: NotificationEventName, listener: (obj: any) => void): void {
|
|
479
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
480
|
+
OneSignal.Notifications.removeEventListener(event, listener)
|
|
481
|
+
});
|
|
482
|
+
}
|
|
723
483
|
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
args: arguments,
|
|
730
|
-
promiseResolver: resolve,
|
|
731
|
-
});
|
|
732
|
-
return;
|
|
733
|
-
}
|
|
734
|
-
|
|
735
|
-
window.OneSignal.push(() => {
|
|
736
|
-
window.OneSignal.removeExternalUserId()
|
|
737
|
-
.then(value => resolve(value))
|
|
738
|
-
.catch(error => reject(error));
|
|
739
|
-
});
|
|
740
|
-
});
|
|
741
|
-
}
|
|
484
|
+
function sessionSendOutcome(outcomeName: string, outcomeWeight?: number): Promise<void> {
|
|
485
|
+
return new Promise(function (resolve, reject) {
|
|
486
|
+
if (isOneSignalScriptFailed) {
|
|
487
|
+
reject();
|
|
488
|
+
}
|
|
742
489
|
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
vueOneSignalFunctionQueue.push({
|
|
747
|
-
name: 'getExternalUserId',
|
|
748
|
-
args: arguments,
|
|
749
|
-
promiseResolver: resolve,
|
|
750
|
-
});
|
|
751
|
-
return;
|
|
752
|
-
}
|
|
753
|
-
|
|
754
|
-
window.OneSignal.push(() => {
|
|
755
|
-
window.OneSignal.getExternalUserId()
|
|
490
|
+
try {
|
|
491
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
492
|
+
OneSignal.Session.sendOutcome(outcomeName, outcomeWeight)
|
|
756
493
|
.then(value => resolve(value))
|
|
757
494
|
.catch(error => reject(error));
|
|
758
495
|
});
|
|
759
|
-
})
|
|
760
|
-
|
|
496
|
+
} catch (error) {
|
|
497
|
+
reject(error);
|
|
498
|
+
}
|
|
499
|
+
});
|
|
500
|
+
}
|
|
761
501
|
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
args: arguments,
|
|
768
|
-
promiseResolver: resolve,
|
|
769
|
-
});
|
|
770
|
-
return;
|
|
771
|
-
}
|
|
772
|
-
|
|
773
|
-
window.OneSignal.push(() => {
|
|
774
|
-
window.OneSignal.provideUserConsent(consent)
|
|
775
|
-
.then(value => resolve(value))
|
|
776
|
-
.catch(error => reject(error));
|
|
777
|
-
});
|
|
778
|
-
});
|
|
779
|
-
}
|
|
502
|
+
function sessionSendUniqueOutcome(outcomeName: string): Promise<void> {
|
|
503
|
+
return new Promise(function (resolve, reject) {
|
|
504
|
+
if (isOneSignalScriptFailed) {
|
|
505
|
+
reject();
|
|
506
|
+
}
|
|
780
507
|
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
vueOneSignalFunctionQueue.push({
|
|
785
|
-
name: 'getEmailId',
|
|
786
|
-
args: arguments,
|
|
787
|
-
promiseResolver: resolve,
|
|
788
|
-
});
|
|
789
|
-
return;
|
|
790
|
-
}
|
|
791
|
-
|
|
792
|
-
window.OneSignal.push(() => {
|
|
793
|
-
window.OneSignal.getEmailId(callback)
|
|
508
|
+
try {
|
|
509
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
510
|
+
OneSignal.Session.sendUniqueOutcome(outcomeName)
|
|
794
511
|
.then(value => resolve(value))
|
|
795
512
|
.catch(error => reject(error));
|
|
796
513
|
});
|
|
797
|
-
})
|
|
798
|
-
|
|
514
|
+
} catch (error) {
|
|
515
|
+
reject(error);
|
|
516
|
+
}
|
|
517
|
+
});
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
function userAddAlias(label: string, id: string): void {
|
|
521
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
522
|
+
OneSignal.User.addAlias(label, id)
|
|
523
|
+
});
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
function userAddAliases(aliases: { [key: string]: string }): void {
|
|
527
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
528
|
+
OneSignal.User.addAliases(aliases)
|
|
529
|
+
});
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
function userRemoveAlias(label: string): void {
|
|
533
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
534
|
+
OneSignal.User.removeAlias(label)
|
|
535
|
+
});
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
function userRemoveAliases(labels: string[]): void {
|
|
539
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
540
|
+
OneSignal.User.removeAliases(labels)
|
|
541
|
+
});
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
function userAddEmail(email: string): void {
|
|
545
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
546
|
+
OneSignal.User.addEmail(email)
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
function userRemoveEmail(email: string): void {
|
|
551
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
552
|
+
OneSignal.User.removeEmail(email)
|
|
553
|
+
});
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
function userAddSms(smsNumber: string): void {
|
|
557
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
558
|
+
OneSignal.User.addSms(smsNumber)
|
|
559
|
+
});
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
function userRemoveSms(smsNumber: string): void {
|
|
563
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
564
|
+
OneSignal.User.removeSms(smsNumber)
|
|
565
|
+
});
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
function pushSubscriptionOptIn(): Promise<void> {
|
|
569
|
+
return new Promise(function (resolve, reject) {
|
|
570
|
+
if (isOneSignalScriptFailed) {
|
|
571
|
+
reject();
|
|
572
|
+
}
|
|
799
573
|
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
vueOneSignalFunctionQueue.push({
|
|
804
|
-
name: 'getSMSId',
|
|
805
|
-
args: arguments,
|
|
806
|
-
promiseResolver: resolve,
|
|
807
|
-
});
|
|
808
|
-
return;
|
|
809
|
-
}
|
|
810
|
-
|
|
811
|
-
window.OneSignal.push(() => {
|
|
812
|
-
window.OneSignal.getSMSId(callback)
|
|
574
|
+
try {
|
|
575
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
576
|
+
OneSignal.User.PushSubscription.optIn()
|
|
813
577
|
.then(value => resolve(value))
|
|
814
578
|
.catch(error => reject(error));
|
|
815
579
|
});
|
|
816
|
-
})
|
|
817
|
-
|
|
580
|
+
} catch (error) {
|
|
581
|
+
reject(error);
|
|
582
|
+
}
|
|
583
|
+
});
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
function pushSubscriptionOptOut(): Promise<void> {
|
|
587
|
+
return new Promise(function (resolve, reject) {
|
|
588
|
+
if (isOneSignalScriptFailed) {
|
|
589
|
+
reject();
|
|
590
|
+
}
|
|
818
591
|
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
vueOneSignalFunctionQueue.push({
|
|
823
|
-
name: 'sendOutcome',
|
|
824
|
-
args: arguments,
|
|
825
|
-
promiseResolver: resolve,
|
|
826
|
-
});
|
|
827
|
-
return;
|
|
828
|
-
}
|
|
829
|
-
|
|
830
|
-
window.OneSignal.push(() => {
|
|
831
|
-
window.OneSignal.sendOutcome(outcomeName, outcomeWeight)
|
|
592
|
+
try {
|
|
593
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
594
|
+
OneSignal.User.PushSubscription.optOut()
|
|
832
595
|
.then(value => resolve(value))
|
|
833
596
|
.catch(error => reject(error));
|
|
834
597
|
});
|
|
835
|
-
})
|
|
836
|
-
|
|
598
|
+
} catch (error) {
|
|
599
|
+
reject(error);
|
|
600
|
+
}
|
|
601
|
+
});
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
function pushSubscriptionAddEventListener(event: 'subscriptionChange', listener: (change: SubscriptionChangeEvent) => void): void {
|
|
605
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
606
|
+
OneSignal.User.PushSubscription.addEventListener(event, listener)
|
|
607
|
+
});
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
function pushSubscriptionRemoveEventListener(event: 'subscriptionChange', listener: (change: SubscriptionChangeEvent) => void): void {
|
|
611
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
612
|
+
OneSignal.User.PushSubscription.removeEventListener(event, listener)
|
|
613
|
+
});
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
function debugSetLogLevel(logLevel: string): void {
|
|
617
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
618
|
+
OneSignal.Debug.setLogLevel(logLevel)
|
|
619
|
+
});
|
|
620
|
+
}
|
|
621
|
+
const PushSubscriptionNamespace: IOneSignalPushSubscription = {
|
|
622
|
+
optIn: pushSubscriptionOptIn,
|
|
623
|
+
optOut: pushSubscriptionOptOut,
|
|
624
|
+
addEventListener: pushSubscriptionAddEventListener,
|
|
625
|
+
removeEventListener: pushSubscriptionRemoveEventListener,
|
|
626
|
+
};
|
|
627
|
+
|
|
628
|
+
const UserNamespace: IOneSignalUser = {
|
|
629
|
+
addAlias: userAddAlias,
|
|
630
|
+
addAliases: userAddAliases,
|
|
631
|
+
removeAlias: userRemoveAlias,
|
|
632
|
+
removeAliases: userRemoveAliases,
|
|
633
|
+
addEmail: userAddEmail,
|
|
634
|
+
removeEmail: userRemoveEmail,
|
|
635
|
+
addSms: userAddSms,
|
|
636
|
+
removeSms: userRemoveSms,
|
|
637
|
+
PushSubscription: PushSubscriptionNamespace,
|
|
638
|
+
};
|
|
639
|
+
|
|
640
|
+
const SessionNamespace: IOneSignalSession = {
|
|
641
|
+
sendOutcome: sessionSendOutcome,
|
|
642
|
+
sendUniqueOutcome: sessionSendUniqueOutcome,
|
|
643
|
+
};
|
|
644
|
+
|
|
645
|
+
const DebugNamespace: IOneSignalDebug = {
|
|
646
|
+
setLogLevel: debugSetLogLevel,
|
|
647
|
+
};
|
|
648
|
+
|
|
649
|
+
const SlidedownNamespace: IOneSignalSlidedown = {
|
|
650
|
+
promptPush: slidedownPromptPush,
|
|
651
|
+
promptPushCategories: slidedownPromptPushCategories,
|
|
652
|
+
promptSms: slidedownPromptSms,
|
|
653
|
+
promptEmail: slidedownPromptEmail,
|
|
654
|
+
promptSmsAndEmail: slidedownPromptSmsAndEmail,
|
|
655
|
+
addEventListener: slidedownAddEventListener,
|
|
656
|
+
removeEventListener: slidedownRemoveEventListener,
|
|
657
|
+
};
|
|
658
|
+
|
|
659
|
+
const NotificationsNamespace: IOneSignalNotifications = {
|
|
660
|
+
setDefaultUrl: notificationsSetDefaultUrl,
|
|
661
|
+
setDefaultTitle: notificationsSetDefaultTitle,
|
|
662
|
+
isPushSupported,
|
|
663
|
+
getPermissionStatus: notificationsGetPermissionStatus,
|
|
664
|
+
requestPermission: notificationsRequestPermission,
|
|
665
|
+
addEventListener: notificationsAddEventListener,
|
|
666
|
+
removeEventListener: notificationsRemoveEventListener,
|
|
667
|
+
};
|
|
837
668
|
|
|
838
|
-
const
|
|
669
|
+
const OneSignalNamespace: IOneSignalOneSignal = {
|
|
670
|
+
login: oneSignalLogin,
|
|
671
|
+
logout: oneSignalLogout,
|
|
839
672
|
init,
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
setDefaultTitle,
|
|
848
|
-
getTags,
|
|
849
|
-
sendTag,
|
|
850
|
-
sendTags,
|
|
851
|
-
deleteTag,
|
|
852
|
-
deleteTags,
|
|
853
|
-
addListenerForNotificationOpened,
|
|
854
|
-
setSubscription,
|
|
855
|
-
showHttpPermissionRequest,
|
|
856
|
-
showNativePrompt,
|
|
857
|
-
showSlidedownPrompt,
|
|
858
|
-
showCategorySlidedown,
|
|
859
|
-
showSmsSlidedown,
|
|
860
|
-
showEmailSlidedown,
|
|
861
|
-
showSmsAndEmailSlidedown,
|
|
862
|
-
getNotificationPermission,
|
|
863
|
-
getUserId,
|
|
864
|
-
getSubscription,
|
|
865
|
-
setEmail,
|
|
866
|
-
setSMSNumber,
|
|
867
|
-
logoutEmail,
|
|
868
|
-
logoutSMS,
|
|
869
|
-
setExternalUserId,
|
|
870
|
-
removeExternalUserId,
|
|
871
|
-
getExternalUserId,
|
|
872
|
-
provideUserConsent,
|
|
873
|
-
getEmailId,
|
|
874
|
-
getSMSId,
|
|
875
|
-
sendOutcome,
|
|
673
|
+
setConsentGiven: oneSignalSetConsentGiven,
|
|
674
|
+
setConsentRequired: oneSignalSetConsentRequired,
|
|
675
|
+
Slidedown: SlidedownNamespace,
|
|
676
|
+
Notifications: NotificationsNamespace,
|
|
677
|
+
Session: SessionNamespace,
|
|
678
|
+
User: UserNamespace,
|
|
679
|
+
Debug: DebugNamespace,
|
|
876
680
|
};
|
|
877
681
|
|
|
878
682
|
const OneSignalVuePlugin = {
|
|
879
683
|
install(app: typeof VueApp) {
|
|
880
|
-
app.prototype.$OneSignal =
|
|
684
|
+
app.prototype.$OneSignal = OneSignalNamespace as IOneSignalOneSignal;
|
|
881
685
|
}
|
|
882
686
|
}
|
|
883
687
|
|