Notification Sound
Have a remote push notification play your custom sound automatically when it arrives
As opposed to Sound.play/Haptics.trigger, which play it on demand from your own JavaScript. This page covers the mechanics both push providers share; the actual sending step is provider-specific:
Custom Notification Sound via OneSignal
You send pushes through the OneSignal Dashboard.
Custom Notification Sound via Firebase Cloud Messaging (FCM)
Your backend calls the FCM API directly.
Before using either page below, upload the sound file via the Dashboard — see Uploading the Sound File on the OS Notification Sound page. The provider only tells the OS which uploaded sound to play — it does not deliver the sound file itself.
Platform support: Android and iOS.
Shared Mechanics (Both Providers)
These OS-level rules apply no matter which service actually sends the push — they're what OneSignal/FCM are ultimately configuring underneath:
iOS: the sound is set by filename with its extension (e.g.
custom_notify.wav), matching exactly what you uploaded for iOS. This maps to the native APNs payload'ssoundfield.Android: the sound is tied to a Notification Channel, referenced by the sound's resource name without extension (e.g.
custom_notify). A channel's sound cannot be changed after it's created on a user's device — this is an Android OS restriction, so changing a channel's sound requires creating a new channel ID rather than editing the old one.
If you send push notifications through a provider other than OneSignal or FCM in the future, these same two rules still apply — only the provider-specific dashboard/API field names differ.
Choosing a Provider
Already sending through OneSignal? Use the OneSignal page — it's dashboard-only, no backend code required.
Calling the FCM API directly from your own backend (not through OneSignal)? Use the FCM page.
Last updated