Documentation Index
Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
Use this file to discover all available pages before exploring further.
OneSignal has updated from a device-centric model (Player ID) to a user-centric model (OneSignal ID). For migration guidance, refer to the User Model Migration Guide.For documentation on legacy device-centric implementations, see Version 9.
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:
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
getExternalUserId()
Player Model:
await OneSignal.getExternalUserId()
User Model: Docs
OneSignal.User.externalId
sendTag()
Player Model:
OneSignal.sendTag("key", "value")
User Model:
OneSignal.User.addTag("key", "value")
User Model doc
Player Model:
OneSignal.sendTags({ key1: 'value1', key2: 'value2' })
User Model:
OneSignal.User.addTags({ key1: 'value1', key2: 'value2' })
Player Model:
await OneSignal.getTags()
User Model:
deleteTag()
Player Model:
OneSignal.deleteTag("key")
User Model:
OneSignal.User.removeTag("key")
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) => { ... })
Email
setEmail()
User Model doc
Player Model:
OneSignal.setEmail('email@example.com')
User Model:
OneSignal.User.addEmail('email@example.com')
logoutEmail()
Player Model:
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:
User Model:
OneSignal.User.removeSms('+11234567890')