diff --git a/express_webpack/index.html b/express_webpack/index.html
index 716575777..6be14dbe0 100644
--- a/express_webpack/index.html
+++ b/express_webpack/index.html
@@ -154,6 +154,12 @@
})
}
+ function sendSelfNotification() {
+ OneSignal.push(function() {
+ OneSignal.sendSelfNotification();
+ });
+ }
+
@@ -189,6 +195,7 @@ OneSignal WebSDK Sandbox
+
diff --git a/src/OneSignal.ts b/src/OneSignal.ts
index 5e08babe1..4c5a98668 100755
--- a/src/OneSignal.ts
+++ b/src/OneSignal.ts
@@ -36,6 +36,7 @@ import {
awaitOneSignalInitAndSupported,
executeCallback,
getConsoleStyle,
+ getPlatformNotificationIcon,
isValidEmail,
logMethodCall,
} from './utils';
@@ -713,16 +714,16 @@ export default class OneSignal {
/**
* @PublicApi
*/
- static async sendSelfNotification(title: string = 'OneSignal Test Message',
- message: string = 'This is an example notification.',
- url: string = `${new URL(location.href).origin}?_osp=do_not_open`,
- icon: URL,
- data: Map,
+ static async sendSelfNotification(title = 'OneSignal Test Message',
+ message = 'This is an example notification.',
+ url = `${new URL(location.href).origin}?_osp=do_not_open`,
+ icon: string,
+ data: Record,
buttons: Array): Promise {
await awaitOneSignalInitAndSupported();
logMethodCall('sendSelfNotification', title, message, url, icon, data, buttons);
const appConfig = await Database.getAppConfig();
- const subscription = await Database.getSubscription();
+
if (!appConfig.appId)
throw new InvalidStateError(InvalidStateReason.MissingAppId);
if (!(await OneSignal.isPushNotificationsEnabled()))
@@ -731,11 +732,20 @@ export default class OneSignal {
throw new InvalidArgumentError('url', InvalidArgumentReason.Malformed);
if (!ValidatorUtils.isValidUrl(icon, { allowEmpty: true, requireHttps: true }))
throw new InvalidArgumentError('icon', InvalidArgumentReason.Malformed);
-
- if (subscription.deviceId) {
- await OneSignalApi.sendNotification(appConfig.appId, [subscription.deviceId], { en : title }, { en : message },
- url, icon, data, buttons);
+ if (!icon) {
+ // get default icon
+ const icons = await MainHelper.getNotificationIcons();
+ icon = getPlatformNotificationIcon(icons);
}
+
+ navigator.serviceWorker.ready.then(async (registration) => {
+ const options: NotificationOptions = {
+ body: message,
+ data: data,
+ icon: icon,
+ };
+ registration.showNotification(title, options);
+ });
}
/**