Overview

This document maps the methods, properties, and events from OneSignal’s legacy Player Model Web SDK to the newer User Model SDK. Each section includes matching TypeScript code examples, clearly demonstrating how to update your integration.

All examples are simplified for demonstration purposes. For complete and up-to-date implementations, refer to the documentation links provided under each method or event.

OneSignal Service Worker

Update the import in your OneSignalSDKWorker.js file:

Player Model:

importScripts('https://cdn.onesignal.com/sdks/OneSignalSDKWorker.js');

User Model:

importScripts("https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.sw.js");

Keep the file path the same. Just update the importScripts URL.

See OneSignal Service Worker for more information.

Initialization

init()

Player Model: Docs

<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async></script>
<script>
window.OneSignal = window.OneSignal || [];
OneSignal.push(function() {
  OneSignal.init({
    appId: "YOUR_APP_ID"
  });
});
</script>

User Model: Docs

<script src="https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js" defer></script>
<script>
window.OneSignalDeferred = window.OneSignalDeferred || [];
OneSignalDeferred.push(async function(OneSignal) {
  await OneSignal.init({
    appId: "YOUR_APP_ID",
  });
});
</script>

provideUserConsent()

Player Model: Docs

OneSignal.provideUserConsent(true)

User Model: Docs

OneSignal.setConsentGiven(true)

Registering for push

showNativePrompt()

Player Model:

OneSignal.showNativePrompt()

User Model: Docs

OneSignal.Notifications.requestPermission()

registerForPushNotifications() — Dropped in User Model

OneSignal.registerForPushNotifications()

#permissionPromptDisplay

Player Model:

OneSignal.on('permissionPromptDisplay', () => ...)

User Model: Docs

OneSignal.Notifications.addEventListener('permissionPromptDisplay', event => { ... })

showSlidedownPrompt()

Player Model:

OneSignal.showSlidedownPrompt()

User Model: Docs

OneSignal.Slidedown.promptPush()

showHttpPrompt() — Dropped in User Model

OneSignal.showHttpPrompt()

showCategorySlidedown()

Player Model:

OneSignal.showCategorySlidedown()

User Model: Docs

OneSignal.Slidedown.promptPushCategories()

#getNotificationPermission

Player Model:

OneSignal.on('getNotificationPermission', (permission) => ...)

User Model: Docs

OneSignal.User.PushSubscription.addEventListener('change', ({ optedIn }) => { ... })

isPushNotificationsSupported()

Player Model:

OneSignal.isPushNotificationsSupported()

User Model: Docs

OneSignal.Notifications.isPushSupported()

isPushNotificationsEnabled()

Player Model:

await OneSignal.isPushNotificationsEnabled()

User Model: Docs

OneSignal.User.PushSubscription.optedIn

#subscriptionChange

Player Model:

OneSignal.on('subscriptionChange', (subscribed) => ...)

User Model:

OneSignal.User.PushSubscription.addEventListener('change', ({ token }) => { ... })

Analytics

#notificationPermissionChange

Player Model:

OneSignal.on('notificationPermissionChange', ({ to }) => ...)

User Model: Docs

OneSignal.Notifications.addEventListener('permissionChange', permission => { ... })

#popoverShown

Player Model:

OneSignal.on('popoverShown', () => ...)

User Model: Docs

OneSignal.Slidedown.addEventListener('slidedownShown', presented => { ... })

#customPromptClick

Player Model:

OneSignal.on('customPromptClick', ({ result }) => ...)

User Model: Docs

OneSignal.Notifications.addEventListener('click', ({notification, result}) => { ... })

User IDs

getUserId()

Player Model:

OneSignal.getUserId()

User Model: Docs

OneSignal.User.PushSubscription.id;

setExternalUserId()

Player Model: Docs

OneSignal.setExternalUserId("external id")

User Model: Docs

OneSignal.login("external id")

removeExternalUserId()

Player Model:

OneSignal.removeExternalUserId()

User Model: Docs

OneSignal.logout()

getExternalUserId()

Player Model:

await OneSignal.getExternalUserId()

User Model: Docs

OneSignal.User.externalId

Tags

sendTag()

Player Model:

OneSignal.sendTag("key", "value")

User Model:

OneSignal.User.addTag("key", "value")

User Model doc

sendTags()

Player Model:

OneSignal.sendTags({ key1: 'value1', key2: 'value2' })

User Model:

OneSignal.User.addTags({ key1: 'value1', key2: 'value2' })

getTags()

Player Model:

await OneSignal.getTags()

User Model:

OneSignal.User.getTags()

deleteTag()

Player Model:

OneSignal.deleteTag("key")

User Model:

OneSignal.User.removeTag("key")

deleteTags()

Player Model:

OneSignal.deleteTags(["key1", "key2"])

User Model:

OneSignal.User.removeTags(["key1", "key2"])

Push Notifications

sendSelfNotification() — Dropped in User Model

OneSignal.sendSelfNotification('title', 'message', 'url') 

setSubscription()

Player Model:

OneSignal.setSubscription(false)

User Model:

OneSignal.Notifications.permission = false

Receiving Notifications

#notificationDisplay

Player Model:

OneSignal.on('notificationDisplay', (event) => { ... })

User Model:

OneSignal.Notifications.addEventListener('foregroundWillDisplay', ({ notification }) => { ... })

#notificationDismiss

Player Model:

OneSignal.on('notificationDismiss', (event) => { ... })

User Model:

OneSignal.Notifications.addEventListener('dismiss', ({ notification }) => { ... })

#addListenerForNotificationOpened

Player Model:

OneSignal.on('addListenerForNotificationOpened', (event) => { ... })

User Model:

// TODO: Not yet implemented in User Model

Email

setEmail()

User Model doc

Player Model:

OneSignal.setEmail('email@example.com')

User Model:

OneSignal.User.addEmail('email@example.com')

logoutEmail()

Player Model:

OneSignal.logoutEmail()

User Model:

OneSignal.User.removeEmail('email@example.com')

getEmailId() — Dropped in User Model

SMS

setSMSNumber()

Player Model:

OneSignal.setSMSNumber('+11234567890')

User Model:

OneSignal.User.addSms('+11234567890')

logoutSMSNumber()

Player Model:

OneSignal.logoutSMS()

User Model:

OneSignal.User.removeSms('+11234567890')

Overview

This document maps the methods, properties, and events from OneSignal’s legacy Player Model Web SDK to the newer User Model SDK. Each section includes matching TypeScript code examples, clearly demonstrating how to update your integration.

All examples are simplified for demonstration purposes. For complete and up-to-date implementations, refer to the documentation links provided under each method or event.

OneSignal Service Worker

Update the import in your OneSignalSDKWorker.js file:

Player Model:

importScripts('https://cdn.onesignal.com/sdks/OneSignalSDKWorker.js');

User Model:

importScripts("https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.sw.js");

Keep the file path the same. Just update the importScripts URL.

See OneSignal Service Worker for more information.

Initialization

init()

Player Model: Docs

<script src="https://cdn.onesignal.com/sdks/OneSignalSDK.js" async></script>
<script>
window.OneSignal = window.OneSignal || [];
OneSignal.push(function() {
  OneSignal.init({
    appId: "YOUR_APP_ID"
  });
});
</script>

User Model: Docs

<script src="https://cdn.onesignal.com/sdks/web/v16/OneSignalSDK.page.js" defer></script>
<script>
window.OneSignalDeferred = window.OneSignalDeferred || [];
OneSignalDeferred.push(async function(OneSignal) {
  await OneSignal.init({
    appId: "YOUR_APP_ID",
  });
});
</script>

provideUserConsent()

Player Model: Docs

OneSignal.provideUserConsent(true)

User Model: Docs

OneSignal.setConsentGiven(true)

Registering for push

showNativePrompt()

Player Model:

OneSignal.showNativePrompt()

User Model: Docs

OneSignal.Notifications.requestPermission()

registerForPushNotifications() — Dropped in User Model

OneSignal.registerForPushNotifications()

#permissionPromptDisplay

Player Model:

OneSignal.on('permissionPromptDisplay', () => ...)

User Model: Docs

OneSignal.Notifications.addEventListener('permissionPromptDisplay', event => { ... })

showSlidedownPrompt()

Player Model:

OneSignal.showSlidedownPrompt()

User Model: Docs

OneSignal.Slidedown.promptPush()

showHttpPrompt() — Dropped in User Model

OneSignal.showHttpPrompt()

showCategorySlidedown()

Player Model:

OneSignal.showCategorySlidedown()

User Model: Docs

OneSignal.Slidedown.promptPushCategories()

#getNotificationPermission

Player Model:

OneSignal.on('getNotificationPermission', (permission) => ...)

User Model: Docs

OneSignal.User.PushSubscription.addEventListener('change', ({ optedIn }) => { ... })

isPushNotificationsSupported()

Player Model:

OneSignal.isPushNotificationsSupported()

User Model: Docs

OneSignal.Notifications.isPushSupported()

isPushNotificationsEnabled()

Player Model:

await OneSignal.isPushNotificationsEnabled()

User Model: Docs

OneSignal.User.PushSubscription.optedIn

#subscriptionChange

Player Model:

OneSignal.on('subscriptionChange', (subscribed) => ...)

User Model:

OneSignal.User.PushSubscription.addEventListener('change', ({ token }) => { ... })

Analytics

#notificationPermissionChange

Player Model:

OneSignal.on('notificationPermissionChange', ({ to }) => ...)

User Model: Docs

OneSignal.Notifications.addEventListener('permissionChange', permission => { ... })

#popoverShown

Player Model:

OneSignal.on('popoverShown', () => ...)

User Model: Docs

OneSignal.Slidedown.addEventListener('slidedownShown', presented => { ... })

#customPromptClick

Player Model:

OneSignal.on('customPromptClick', ({ result }) => ...)

User Model: Docs

OneSignal.Notifications.addEventListener('click', ({notification, result}) => { ... })

User IDs

getUserId()

Player Model:

OneSignal.getUserId()

User Model: Docs

OneSignal.User.PushSubscription.id;

setExternalUserId()

Player Model: Docs

OneSignal.setExternalUserId("external id")

User Model: Docs

OneSignal.login("external id")

removeExternalUserId()

Player Model:

OneSignal.removeExternalUserId()

User Model: Docs

OneSignal.logout()

getExternalUserId()

Player Model:

await OneSignal.getExternalUserId()

User Model: Docs

OneSignal.User.externalId

Tags

sendTag()

Player Model:

OneSignal.sendTag("key", "value")

User Model:

OneSignal.User.addTag("key", "value")

User Model doc

sendTags()

Player Model:

OneSignal.sendTags({ key1: 'value1', key2: 'value2' })

User Model:

OneSignal.User.addTags({ key1: 'value1', key2: 'value2' })

getTags()

Player Model:

await OneSignal.getTags()

User Model:

OneSignal.User.getTags()

deleteTag()

Player Model:

OneSignal.deleteTag("key")

User Model:

OneSignal.User.removeTag("key")

deleteTags()

Player Model:

OneSignal.deleteTags(["key1", "key2"])

User Model:

OneSignal.User.removeTags(["key1", "key2"])

Push Notifications

sendSelfNotification() — Dropped in User Model

OneSignal.sendSelfNotification('title', 'message', 'url') 

setSubscription()

Player Model:

OneSignal.setSubscription(false)

User Model:

OneSignal.Notifications.permission = false

Receiving Notifications

#notificationDisplay

Player Model:

OneSignal.on('notificationDisplay', (event) => { ... })

User Model:

OneSignal.Notifications.addEventListener('foregroundWillDisplay', ({ notification }) => { ... })

#notificationDismiss

Player Model:

OneSignal.on('notificationDismiss', (event) => { ... })

User Model:

OneSignal.Notifications.addEventListener('dismiss', ({ notification }) => { ... })

#addListenerForNotificationOpened

Player Model:

OneSignal.on('addListenerForNotificationOpened', (event) => { ... })

User Model:

// TODO: Not yet implemented in User Model

Email

setEmail()

User Model doc

Player Model:

OneSignal.setEmail('email@example.com')

User Model:

OneSignal.User.addEmail('email@example.com')

logoutEmail()

Player Model:

OneSignal.logoutEmail()

User Model:

OneSignal.User.removeEmail('email@example.com')

getEmailId() — Dropped in User Model

SMS

setSMSNumber()

Player Model:

OneSignal.setSMSNumber('+11234567890')

User Model:

OneSignal.User.addSms('+11234567890')

logoutSMSNumber()

Player Model:

OneSignal.logoutSMS()

User Model:

OneSignal.User.removeSms('+11234567890')