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