@onesignal/onesignal-vue3 1.0.2 → 2.0.0-beta.2
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 +75 -56
- package/dist/index.js +405 -567
- package/dist/index.js.map +1 -1
- package/index.ts +530 -726
- package/package.json +1 -1
- package/tsconfig.json +1 -1
package/index.ts
CHANGED
|
@@ -1,79 +1,136 @@
|
|
|
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
|
+
OneSignal?: IOneSignalOneSignal;
|
|
49
|
+
safari?: {
|
|
50
|
+
pushNotification: any;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
/* O N E S I G N A L A P I */
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* @PublicApi
|
|
60
|
+
*/
|
|
61
|
+
const init = (options: IInitObject): Promise<void> => {
|
|
62
|
+
if (isOneSignalInitialized) {
|
|
63
|
+
return Promise.reject(`OneSignal is already initialized.`);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if (!options || !options.appId) {
|
|
67
|
+
throw new Error('You need to provide your OneSignal appId.');
|
|
68
|
+
}
|
|
31
69
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
70
|
+
if (!document) {
|
|
71
|
+
return Promise.reject(`Document is not defined.`);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return new Promise<void>((resolve) => {
|
|
75
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
76
|
+
OneSignal.init(options).then(() => {
|
|
77
|
+
isOneSignalInitialized = true;
|
|
78
|
+
resolve();
|
|
35
79
|
});
|
|
36
|
-
}
|
|
37
|
-
window.OneSignal[name](...args);
|
|
38
|
-
}
|
|
80
|
+
});
|
|
39
81
|
});
|
|
40
|
-
}
|
|
82
|
+
};
|
|
41
83
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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();
|
|
46
94
|
}
|
|
47
95
|
|
|
48
|
-
|
|
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
|
+
}
|
|
49
102
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
103
|
+
function supportsSafariPush(): boolean {
|
|
104
|
+
return (window.safari && typeof window.safari.pushNotification !== "undefined") ||
|
|
105
|
+
isMacOSSafariInIframe();
|
|
54
106
|
}
|
|
55
107
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
108
|
+
// Does the browser support the standard Push API
|
|
109
|
+
function supportsVapidPush(): boolean {
|
|
110
|
+
return typeof PushSubscriptionOptions !== "undefined" &&
|
|
111
|
+
PushSubscriptionOptions.prototype.hasOwnProperty("applicationServerKey");
|
|
60
112
|
}
|
|
113
|
+
/* E N D */
|
|
61
114
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
115
|
+
/**
|
|
116
|
+
* @PublicApi
|
|
117
|
+
*/
|
|
118
|
+
const isPushSupported = (): boolean => {
|
|
119
|
+
return isPushNotificationsSupported();
|
|
66
120
|
}
|
|
67
121
|
|
|
68
122
|
type Action<T> = (item: T) => void;
|
|
69
123
|
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
124
|
interface IOneSignalAutoPromptOptions { force?: boolean; forceSlidedownOverNative?: boolean; isInUpdateMode?: boolean; categoryOptions?: IOneSignalCategories; }
|
|
75
125
|
interface IOneSignalCategories { positiveUpdateButton: string; negativeUpdateButton: string; savingButtonText: string; errorButtonText: string; updateMessage: string; tags: IOneSignalTagCategory[]; }
|
|
76
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;
|
|
77
134
|
|
|
78
135
|
interface IInitObject {
|
|
79
136
|
appId: string;
|
|
@@ -96,791 +153,538 @@ interface IInitObject {
|
|
|
96
153
|
[key: string]: any;
|
|
97
154
|
}
|
|
98
155
|
|
|
99
|
-
interface
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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
|
-
|
|
156
|
+
interface IOneSignalOneSignal {
|
|
157
|
+
Slidedown: IOneSignalSlidedown;
|
|
158
|
+
Notifications: IOneSignalNotifications;
|
|
159
|
+
Session: IOneSignalSession;
|
|
160
|
+
User: IOneSignalUser;
|
|
161
|
+
Debug: IOneSignalDebug;
|
|
162
|
+
login(externalId: string, jwtToken?: string): Promise<void>;
|
|
163
|
+
logout(): Promise<void>;
|
|
164
|
+
init(options: IInitObject): Promise<void>;
|
|
165
|
+
setConsentGiven(consent: boolean): Promise<void>;
|
|
166
|
+
setConsentRequired(requiresConsent: boolean): Promise<void>;
|
|
167
|
+
}
|
|
168
|
+
interface IOneSignalNotifications {
|
|
169
|
+
setDefaultUrl(url: string): Promise<void>;
|
|
170
|
+
setDefaultTitle(title: string): Promise<void>;
|
|
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
|
+
}
|
|
177
|
+
interface IOneSignalSlidedown {
|
|
178
|
+
promptPush(options?: AutoPromptOptions): Promise<void>;
|
|
179
|
+
promptPushCategories(options?: AutoPromptOptions): Promise<void>;
|
|
180
|
+
promptSms(options?: AutoPromptOptions): Promise<void>;
|
|
181
|
+
promptEmail(options?: AutoPromptOptions): Promise<void>;
|
|
182
|
+
promptSmsAndEmail(options?: AutoPromptOptions): Promise<void>;
|
|
183
|
+
addEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void;
|
|
184
|
+
removeEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void;
|
|
185
|
+
}
|
|
186
|
+
interface IOneSignalDebug {
|
|
187
|
+
setLogLevel(logLevel: string): void;
|
|
188
|
+
}
|
|
189
|
+
interface IOneSignalSession {
|
|
190
|
+
sendOutcome(outcomeName: string, outcomeWeight?: number): Promise<void>;
|
|
191
|
+
sendUniqueOutcome(outcomeName: string): Promise<void>;
|
|
192
|
+
}
|
|
193
|
+
interface IOneSignalUser {
|
|
194
|
+
PushSubscription: IOneSignalPushSubscription;
|
|
195
|
+
addAlias(label: string, id: string): void;
|
|
196
|
+
addAliases(aliases: { [key: string]: string }): void;
|
|
197
|
+
removeAlias(label: string): void;
|
|
198
|
+
removeAliases(labels: string[]): void;
|
|
199
|
+
addEmail(email: string): void;
|
|
200
|
+
removeEmail(email: string): void;
|
|
201
|
+
addSms(smsNumber: string): void;
|
|
202
|
+
removeSms(smsNumber: string): void;
|
|
203
|
+
}
|
|
204
|
+
interface IOneSignalPushSubscription {
|
|
205
|
+
id: string | null | undefined;
|
|
206
|
+
token: string | null | undefined;
|
|
207
|
+
optedIn: boolean | undefined;
|
|
208
|
+
optIn(): Promise<void>;
|
|
209
|
+
optOut(): Promise<void>;
|
|
210
|
+
addEventListener(event: 'subscriptionChange', listener: (change: SubscriptionChangeEvent) => void): void;
|
|
211
|
+
removeEventListener(event: 'subscriptionChange', listener: (change: SubscriptionChangeEvent) => void): void;
|
|
138
212
|
}
|
|
139
213
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
return new Promise<void>(resolve => {
|
|
145
|
-
if (isOneSignalInitialized) {
|
|
146
|
-
return;
|
|
214
|
+
function oneSignalLogin(externalId: string, jwtToken?: string): Promise<void> {
|
|
215
|
+
return new Promise(function (resolve, reject) {
|
|
216
|
+
if (isOneSignalScriptFailed) {
|
|
217
|
+
reject();
|
|
147
218
|
}
|
|
148
219
|
|
|
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
|
-
});
|
|
220
|
+
try {
|
|
221
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
222
|
+
OneSignal.login(externalId, jwtToken)
|
|
223
|
+
.then(value => resolve(value))
|
|
224
|
+
.catch(error => reject(error));
|
|
225
|
+
});
|
|
226
|
+
} catch (error) {
|
|
227
|
+
reject(error);
|
|
228
|
+
}
|
|
165
229
|
});
|
|
166
230
|
}
|
|
167
231
|
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
args: arguments,
|
|
173
|
-
});
|
|
174
|
-
return;
|
|
232
|
+
function oneSignalLogout(): Promise<void> {
|
|
233
|
+
return new Promise(function (resolve, reject) {
|
|
234
|
+
if (isOneSignalScriptFailed) {
|
|
235
|
+
reject();
|
|
175
236
|
}
|
|
176
237
|
|
|
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,
|
|
238
|
+
try {
|
|
239
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
240
|
+
OneSignal.logout()
|
|
241
|
+
.then(value => resolve(value))
|
|
242
|
+
.catch(error => reject(error));
|
|
187
243
|
});
|
|
188
|
-
|
|
244
|
+
} catch (error) {
|
|
245
|
+
reject(error);
|
|
189
246
|
}
|
|
247
|
+
});
|
|
248
|
+
}
|
|
190
249
|
|
|
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;
|
|
250
|
+
function oneSignalSetConsentGiven(consent: boolean): Promise<void> {
|
|
251
|
+
return new Promise(function (resolve, reject) {
|
|
252
|
+
if (isOneSignalScriptFailed) {
|
|
253
|
+
reject();
|
|
203
254
|
}
|
|
204
255
|
|
|
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)
|
|
256
|
+
try {
|
|
257
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
258
|
+
OneSignal.setConsentGiven(consent)
|
|
223
259
|
.then(value => resolve(value))
|
|
224
260
|
.catch(error => reject(error));
|
|
225
261
|
});
|
|
226
|
-
})
|
|
227
|
-
|
|
262
|
+
} catch (error) {
|
|
263
|
+
reject(error);
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
}
|
|
228
267
|
|
|
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
|
-
}
|
|
268
|
+
function oneSignalSetConsentRequired(requiresConsent: boolean): Promise<void> {
|
|
269
|
+
return new Promise(function (resolve, reject) {
|
|
270
|
+
if (isOneSignalScriptFailed) {
|
|
271
|
+
reject();
|
|
272
|
+
}
|
|
247
273
|
|
|
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)
|
|
274
|
+
try {
|
|
275
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
276
|
+
OneSignal.setConsentRequired(requiresConsent)
|
|
261
277
|
.then(value => resolve(value))
|
|
262
278
|
.catch(error => reject(error));
|
|
263
279
|
});
|
|
264
|
-
})
|
|
265
|
-
|
|
280
|
+
} catch (error) {
|
|
281
|
+
reject(error);
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
}
|
|
266
285
|
|
|
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
|
-
}
|
|
286
|
+
function slidedownPromptPush(options?: AutoPromptOptions): Promise<void> {
|
|
287
|
+
return new Promise(function (resolve, reject) {
|
|
288
|
+
if (isOneSignalScriptFailed) {
|
|
289
|
+
reject();
|
|
290
|
+
}
|
|
285
291
|
|
|
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)
|
|
292
|
+
try {
|
|
293
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
294
|
+
OneSignal.Slidedown.promptPush(options)
|
|
299
295
|
.then(value => resolve(value))
|
|
300
296
|
.catch(error => reject(error));
|
|
301
297
|
});
|
|
302
|
-
})
|
|
303
|
-
|
|
298
|
+
} catch (error) {
|
|
299
|
+
reject(error);
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
}
|
|
304
303
|
|
|
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
|
-
}
|
|
304
|
+
function slidedownPromptPushCategories(options?: AutoPromptOptions): Promise<void> {
|
|
305
|
+
return new Promise(function (resolve, reject) {
|
|
306
|
+
if (isOneSignalScriptFailed) {
|
|
307
|
+
reject();
|
|
308
|
+
}
|
|
323
309
|
|
|
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)
|
|
310
|
+
try {
|
|
311
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
312
|
+
OneSignal.Slidedown.promptPushCategories(options)
|
|
337
313
|
.then(value => resolve(value))
|
|
338
314
|
.catch(error => reject(error));
|
|
339
315
|
});
|
|
340
|
-
})
|
|
341
|
-
|
|
316
|
+
} catch (error) {
|
|
317
|
+
reject(error);
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
}
|
|
342
321
|
|
|
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
|
-
}
|
|
322
|
+
function slidedownPromptSms(options?: AutoPromptOptions): Promise<void> {
|
|
323
|
+
return new Promise(function (resolve, reject) {
|
|
324
|
+
if (isOneSignalScriptFailed) {
|
|
325
|
+
reject();
|
|
326
|
+
}
|
|
361
327
|
|
|
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)
|
|
328
|
+
try {
|
|
329
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
330
|
+
OneSignal.Slidedown.promptSms(options)
|
|
375
331
|
.then(value => resolve(value))
|
|
376
332
|
.catch(error => reject(error));
|
|
377
333
|
});
|
|
378
|
-
})
|
|
379
|
-
|
|
334
|
+
} catch (error) {
|
|
335
|
+
reject(error);
|
|
336
|
+
}
|
|
337
|
+
});
|
|
338
|
+
}
|
|
380
339
|
|
|
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
|
-
}
|
|
340
|
+
function slidedownPromptEmail(options?: AutoPromptOptions): Promise<void> {
|
|
341
|
+
return new Promise(function (resolve, reject) {
|
|
342
|
+
if (isOneSignalScriptFailed) {
|
|
343
|
+
reject();
|
|
344
|
+
}
|
|
399
345
|
|
|
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)
|
|
346
|
+
try {
|
|
347
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
348
|
+
OneSignal.Slidedown.promptEmail(options)
|
|
413
349
|
.then(value => resolve(value))
|
|
414
350
|
.catch(error => reject(error));
|
|
415
351
|
});
|
|
416
|
-
})
|
|
417
|
-
|
|
352
|
+
} catch (error) {
|
|
353
|
+
reject(error);
|
|
354
|
+
}
|
|
355
|
+
});
|
|
356
|
+
}
|
|
418
357
|
|
|
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
|
-
}
|
|
358
|
+
function slidedownPromptSmsAndEmail(options?: AutoPromptOptions): Promise<void> {
|
|
359
|
+
return new Promise(function (resolve, reject) {
|
|
360
|
+
if (isOneSignalScriptFailed) {
|
|
361
|
+
reject();
|
|
362
|
+
}
|
|
437
363
|
|
|
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)
|
|
364
|
+
try {
|
|
365
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
366
|
+
OneSignal.Slidedown.promptSmsAndEmail(options)
|
|
451
367
|
.then(value => resolve(value))
|
|
452
368
|
.catch(error => reject(error));
|
|
453
369
|
});
|
|
454
|
-
})
|
|
455
|
-
|
|
370
|
+
} catch (error) {
|
|
371
|
+
reject(error);
|
|
372
|
+
}
|
|
373
|
+
});
|
|
374
|
+
}
|
|
456
375
|
|
|
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
|
-
}
|
|
376
|
+
function slidedownAddEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void {
|
|
377
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
378
|
+
OneSignal.Slidedown.addEventListener(event, listener)
|
|
379
|
+
});
|
|
380
|
+
}
|
|
475
381
|
|
|
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
|
-
}
|
|
382
|
+
function slidedownRemoveEventListener(event: SlidedownEventName, listener: (wasShown: boolean) => void): void {
|
|
383
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
384
|
+
OneSignal.Slidedown.removeEventListener(event, listener)
|
|
385
|
+
});
|
|
386
|
+
}
|
|
494
387
|
|
|
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
|
-
}
|
|
388
|
+
function notificationsSetDefaultUrl(url: string): Promise<void> {
|
|
389
|
+
return new Promise(function (resolve, reject) {
|
|
390
|
+
if (isOneSignalScriptFailed) {
|
|
391
|
+
reject();
|
|
392
|
+
}
|
|
513
393
|
|
|
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)
|
|
394
|
+
try {
|
|
395
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
396
|
+
OneSignal.Notifications.setDefaultUrl(url)
|
|
527
397
|
.then(value => resolve(value))
|
|
528
398
|
.catch(error => reject(error));
|
|
529
399
|
});
|
|
530
|
-
})
|
|
531
|
-
|
|
400
|
+
} catch (error) {
|
|
401
|
+
reject(error);
|
|
402
|
+
}
|
|
403
|
+
});
|
|
404
|
+
}
|
|
532
405
|
|
|
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
|
-
}
|
|
406
|
+
function notificationsSetDefaultTitle(title: string): Promise<void> {
|
|
407
|
+
return new Promise(function (resolve, reject) {
|
|
408
|
+
if (isOneSignalScriptFailed) {
|
|
409
|
+
reject();
|
|
410
|
+
}
|
|
551
411
|
|
|
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)
|
|
412
|
+
try {
|
|
413
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
414
|
+
OneSignal.Notifications.setDefaultTitle(title)
|
|
565
415
|
.then(value => resolve(value))
|
|
566
416
|
.catch(error => reject(error));
|
|
567
417
|
});
|
|
568
|
-
})
|
|
569
|
-
|
|
418
|
+
} catch (error) {
|
|
419
|
+
reject(error);
|
|
420
|
+
}
|
|
421
|
+
});
|
|
422
|
+
}
|
|
570
423
|
|
|
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
|
-
}
|
|
424
|
+
function notificationsGetPermissionStatus(onComplete: Action<NotificationPermission>): Promise<NotificationPermission> {
|
|
425
|
+
return new Promise(function (resolve, reject) {
|
|
426
|
+
if (isOneSignalScriptFailed) {
|
|
427
|
+
reject();
|
|
428
|
+
}
|
|
589
429
|
|
|
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)
|
|
430
|
+
try {
|
|
431
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
432
|
+
OneSignal.Notifications.getPermissionStatus(onComplete)
|
|
603
433
|
.then(value => resolve(value))
|
|
604
434
|
.catch(error => reject(error));
|
|
605
435
|
});
|
|
606
|
-
})
|
|
607
|
-
|
|
436
|
+
} catch (error) {
|
|
437
|
+
reject(error);
|
|
438
|
+
}
|
|
439
|
+
});
|
|
440
|
+
}
|
|
608
441
|
|
|
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
|
-
}
|
|
442
|
+
function notificationsRequestPermission(): Promise<void> {
|
|
443
|
+
return new Promise(function (resolve, reject) {
|
|
444
|
+
if (isOneSignalScriptFailed) {
|
|
445
|
+
reject();
|
|
446
|
+
}
|
|
627
447
|
|
|
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)
|
|
448
|
+
try {
|
|
449
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
450
|
+
OneSignal.Notifications.requestPermission()
|
|
641
451
|
.then(value => resolve(value))
|
|
642
452
|
.catch(error => reject(error));
|
|
643
453
|
});
|
|
644
|
-
})
|
|
645
|
-
|
|
454
|
+
} catch (error) {
|
|
455
|
+
reject(error);
|
|
456
|
+
}
|
|
457
|
+
});
|
|
458
|
+
}
|
|
646
459
|
|
|
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
|
-
}
|
|
460
|
+
function notificationsAddEventListener(event: 'click' | 'willDisplay' | 'dismiss', listener: (obj: StructuredNotification) => void): void;
|
|
461
|
+
function notificationsAddEventListener(event: 'permissionChange', listener: (obj: { to: NotificationPermission }) => void): void;
|
|
462
|
+
function notificationsAddEventListener(event: 'permissionPromptDisplay', listener: () => void): void;
|
|
665
463
|
|
|
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
|
-
}
|
|
464
|
+
function notificationsAddEventListener(event: NotificationEventName, listener: (obj: any) => void): void {
|
|
465
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
466
|
+
OneSignal.Notifications.addEventListener(event, listener)
|
|
467
|
+
});
|
|
468
|
+
}
|
|
684
469
|
|
|
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
|
-
}
|
|
470
|
+
function notificationsRemoveEventListener(event: 'click' | 'willDisplay' | 'dismiss', listener: (obj: StructuredNotification) => void): void;
|
|
471
|
+
function notificationsRemoveEventListener(event: 'permissionChange', listener: (obj: { to: NotificationPermission }) => void): void;
|
|
472
|
+
function notificationsRemoveEventListener(event: 'permissionPromptDisplay', listener: () => void): void;
|
|
703
473
|
|
|
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
|
-
}
|
|
474
|
+
function notificationsRemoveEventListener(event: NotificationEventName, listener: (obj: any) => void): void {
|
|
475
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
476
|
+
OneSignal.Notifications.removeEventListener(event, listener)
|
|
477
|
+
});
|
|
478
|
+
}
|
|
722
479
|
|
|
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
|
-
}
|
|
480
|
+
function sessionSendOutcome(outcomeName: string, outcomeWeight?: number): Promise<void> {
|
|
481
|
+
return new Promise(function (resolve, reject) {
|
|
482
|
+
if (isOneSignalScriptFailed) {
|
|
483
|
+
reject();
|
|
484
|
+
}
|
|
741
485
|
|
|
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()
|
|
486
|
+
try {
|
|
487
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
488
|
+
OneSignal.Session.sendOutcome(outcomeName, outcomeWeight)
|
|
755
489
|
.then(value => resolve(value))
|
|
756
490
|
.catch(error => reject(error));
|
|
757
491
|
});
|
|
758
|
-
})
|
|
759
|
-
|
|
492
|
+
} catch (error) {
|
|
493
|
+
reject(error);
|
|
494
|
+
}
|
|
495
|
+
});
|
|
496
|
+
}
|
|
760
497
|
|
|
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
|
-
}
|
|
498
|
+
function sessionSendUniqueOutcome(outcomeName: string): Promise<void> {
|
|
499
|
+
return new Promise(function (resolve, reject) {
|
|
500
|
+
if (isOneSignalScriptFailed) {
|
|
501
|
+
reject();
|
|
502
|
+
}
|
|
779
503
|
|
|
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)
|
|
504
|
+
try {
|
|
505
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
506
|
+
OneSignal.Session.sendUniqueOutcome(outcomeName)
|
|
793
507
|
.then(value => resolve(value))
|
|
794
508
|
.catch(error => reject(error));
|
|
795
509
|
});
|
|
796
|
-
})
|
|
797
|
-
|
|
510
|
+
} catch (error) {
|
|
511
|
+
reject(error);
|
|
512
|
+
}
|
|
513
|
+
});
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
function userAddAlias(label: string, id: string): void {
|
|
517
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
518
|
+
OneSignal.User.addAlias(label, id)
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
function userAddAliases(aliases: { [key: string]: string }): void {
|
|
523
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
524
|
+
OneSignal.User.addAliases(aliases)
|
|
525
|
+
});
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
function userRemoveAlias(label: string): void {
|
|
529
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
530
|
+
OneSignal.User.removeAlias(label)
|
|
531
|
+
});
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
function userRemoveAliases(labels: string[]): void {
|
|
535
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
536
|
+
OneSignal.User.removeAliases(labels)
|
|
537
|
+
});
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
function userAddEmail(email: string): void {
|
|
541
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
542
|
+
OneSignal.User.addEmail(email)
|
|
543
|
+
});
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
function userRemoveEmail(email: string): void {
|
|
547
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
548
|
+
OneSignal.User.removeEmail(email)
|
|
549
|
+
});
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
function userAddSms(smsNumber: string): void {
|
|
553
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
554
|
+
OneSignal.User.addSms(smsNumber)
|
|
555
|
+
});
|
|
556
|
+
}
|
|
798
557
|
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
558
|
+
function userRemoveSms(smsNumber: string): void {
|
|
559
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
560
|
+
OneSignal.User.removeSms(smsNumber)
|
|
561
|
+
});
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
function pushSubscriptionOptIn(): Promise<void> {
|
|
565
|
+
return new Promise(function (resolve, reject) {
|
|
566
|
+
if (isOneSignalScriptFailed) {
|
|
567
|
+
reject();
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
try {
|
|
571
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
572
|
+
OneSignal.User.PushSubscription.optIn()
|
|
812
573
|
.then(value => resolve(value))
|
|
813
574
|
.catch(error => reject(error));
|
|
814
575
|
});
|
|
815
|
-
})
|
|
816
|
-
|
|
576
|
+
} catch (error) {
|
|
577
|
+
reject(error);
|
|
578
|
+
}
|
|
579
|
+
});
|
|
580
|
+
}
|
|
817
581
|
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
}
|
|
828
|
-
|
|
829
|
-
window.OneSignal.push(() => {
|
|
830
|
-
window.OneSignal.sendOutcome(outcomeName, outcomeWeight)
|
|
582
|
+
function pushSubscriptionOptOut(): Promise<void> {
|
|
583
|
+
return new Promise(function (resolve, reject) {
|
|
584
|
+
if (isOneSignalScriptFailed) {
|
|
585
|
+
reject();
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
try {
|
|
589
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
590
|
+
OneSignal.User.PushSubscription.optOut()
|
|
831
591
|
.then(value => resolve(value))
|
|
832
592
|
.catch(error => reject(error));
|
|
833
593
|
});
|
|
834
|
-
})
|
|
835
|
-
|
|
594
|
+
} catch (error) {
|
|
595
|
+
reject(error);
|
|
596
|
+
}
|
|
597
|
+
});
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
function pushSubscriptionAddEventListener(event: 'subscriptionChange', listener: (change: SubscriptionChangeEvent) => void): void {
|
|
601
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
602
|
+
OneSignal.User.PushSubscription.addEventListener(event, listener)
|
|
603
|
+
});
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
function pushSubscriptionRemoveEventListener(event: 'subscriptionChange', listener: (change: SubscriptionChangeEvent) => void): void {
|
|
607
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
608
|
+
OneSignal.User.PushSubscription.removeEventListener(event, listener)
|
|
609
|
+
});
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
function debugSetLogLevel(logLevel: string): void {
|
|
613
|
+
window.OneSignalDeferred?.push((OneSignal) => {
|
|
614
|
+
OneSignal.Debug.setLogLevel(logLevel)
|
|
615
|
+
});
|
|
616
|
+
}
|
|
617
|
+
const PushSubscriptionNamespace: IOneSignalPushSubscription = {
|
|
618
|
+
get id(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.id },
|
|
619
|
+
get token(): string | null | undefined { return window.OneSignal?.User?.PushSubscription?.token },
|
|
620
|
+
get optedIn(): boolean | undefined { return window.OneSignal?.User?.PushSubscription?.optedIn },
|
|
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
|
}
|