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