Agrega sonidos de notificación personalizados a apps de iOS, Android, Huawei y Amazon — incluidos formatos de archivo, configuración del SDK y parámetros de API.
Los sonidos personalizados te permiten proporcionar una experiencia más única y de marca en tu app. Puedes agregar un sonido personalizado a cada notificación o solo a ciertos tipos. Por ejemplo, una app social podría reproducir un sonido distintivo solo para mensajes directos para diferenciarlos de las notificaciones del sistema.
Solo para apps móviles. Los sonidos personalizados no están soportados en web push.
Crea archivos de sonido siguiendo los requisitos de plataforma a continuación. Si el dispositivo no puede encontrar el archivo especificado o el formato de archivo no está soportado, recurrirá al sonido de notificación del sistema predeterminado.
Mantén los nombres de archivos de sonido en minúsculas ya que algunas plataformas ignoran letras mayúsculas para archivos de sonido. En lugar de AwesomeSound.wav usa awesomesound.wav o awesome_sound.wav.
Plataforma
Extensiones
Notas
iOS
.wav.aiff.caf
Los sonidos deben estar codificados como Linear PCM, MA4 (IMA/ADPCM), µLaw o aLaw. Deben durar menos de 30 segundos.
Android
.wav.mp3.ogg
Duración recomendada menos de 30 segundos. Mantén el tamaño de archivo pequeño, archivos grandes pueden no reproducirse en algunos dispositivos.
Huawei
.wav.mp3.wma
Duración recomendada menos de 30 segundos. Mantén el tamaño de archivo pequeño, archivos grandes pueden no reproducirse en algunos dispositivos.
Amazon
.wav.mp3.ogg
Duración recomendada menos de 30 segundos. Mantén el tamaño de archivo pequeño, archivos grandes pueden no reproducirse en algunos dispositivos.
Los archivos de sonido deben incluirse como recursos dentro de tu app. Las URLs externas no están soportadas.
iOS
Android, Huawei, and Amazon
Agrega archivos de sonido a la ubicación apropiada en tu proyecto Xcode dependiendo de tu SDK.
SDK
Folder
iOS Native
Add files to the Xcode project root. Make sure Add to targets is selected when adding files so they are automatically added to the bundle resources.
Cordova, Ionic
Add files to Resources directory within the Xcode project in <project-root>/platforms/ios/project-name.xcodeproj.
Unity
Add sounds anywhere in your Unity project, build your project, and then move those sounds to the Xcode project root.
Agrega archivos de sonido a la carpeta apropiada en tu proyecto dependiendo de tu SDK. Si la carpeta no existe, créala.
SDK
Folder
Android, Huawei, Amazon Native
res/raw
React Native
<project-root>/android/app/src/main/res/raw
Cordova
<project-root>/platforms/android/res/raw/
Ionic
/android/app/src/main/res/raw/
Unity
Assets/Plugins/Android/OneSignalConfig/res/rawNOTE: Your sound and icon file names must be lowercase and can’t contain anything else except underscores and numbers.
Incluye la extensión del archivo al hacer referencia al recurso de sonido (p. ej., explode_sound.wav). Configura el sonido en el dashboard al enviar mensajes push o usa la propiedad ios_sound del API Create Notification.Para sin sonido, pasa nil al campo Sound.
Configuración de un sonido personalizado para iOS en el dashboard de OneSignal.
Android 8+ introdujo Notification Categories que deben configurarse para personalizar sonidos de notificación. OneSignal usa el sonido configurado en el Notification Channel para todas las versiones de Android.En Settings > Push & In-App > Android Notification Channels, crea el grupo y canal.
Crear un canal de notificación.
Establece Importance a “Urgent” o “High” para reproducir sonido.
Establece Sound a “Default” o “Custom” según tus necesidades. No agregues la extensión del archivo al hacer referencia al recurso de sonido (p. ej., cat_meow_sound).
Para sin sonido, establece Importance a “Urgent” o “High” y Sound a “Off”. O establece Importance a “Medium” o “Low” para sin sonido.
Configuración del sonido para un canal de notificación.
Luego puedes establecer el nombre de categoría en el dashboard al enviar mensajes push o usar las propiedades android_channel_id y huawei_channel_id del API Create Notification. El sonido configurado en la categoría funciona para todas las versiones de Android.
Selección de la categoría de notificación en el compositor de push.
Puedes enviar notificaciones con sonidos a través del REST API usando el parámetro apropiado para cada plataforma. Consulta la referencia del API Create Notification para todos los detalles.
Plataforma
Parámetro API
Detalles
iOS
ios_sound
Incluir extensión de archivo. Ejemplo: "ios_sound": "explode_sound.wav". Para sin sonido, pasa nil.
Android
android_channel_id — Usar si creaste el canal en el dashboard de OneSignal a través de Notification Categories. existing_android_channel_id — Usar si creaste el canal en otro lugar.
huawei_channel_id — Usar si creaste el canal en el dashboard de OneSignal a través de Notification Categories. huawei_existing_channel_id — Usar si creaste el canal en otro lugar.
No incluir extensión de archivo. Ejemplo: "adm_sound": "explode_sound".
Si recientemente agregaste un recurso de sonido a tu app, considera esperar unos días antes de enviar notificaciones que lo usen. Puede tomar días o semanas para que la mayoría de los usuarios actualicen a la versión más reciente de la app que contiene el nuevo archivo de sonido.Si un usuario tiene una versión anterior sin el recurso de sonido y recibe una notificación que lo referencia, solo escuchará el sonido de notificación del sistema predeterminado.
Usa una Template que haga referencia al sonido y/o Android Notification Channel. Cada notificación enviada con esa plantilla usará automáticamente el sonido configurado.
¿Puedo enviar diferentes sonidos de notificación a diferentes usuarios?
Los parámetros ios_sound y android_channel_id son a nivel de solicitud — se aplican a todos los destinatarios de esa llamada API. No puedes especificar diferentes sonidos para diferentes usuarios en una sola solicitud.Para entregar diferentes sonidos a diferentes usuarios, usa un patrón fan-out: haz llamadas API separadas para cada variante de sonido, apuntando a usuarios por etiqueta o segmento. Por ejemplo, almacena el sonido preferido de cada usuario en una etiqueta como preferred_sound, luego envía una solicitud por valor de sonido.
{ "app_id": "YOUR_APP_ID", "contents": {"en": "You have a new message!"}, "ios_sound": "chime.wav", "android_channel_id": "CHIME_CHANNEL_ID", "include_filters": [ {"field": "tag", "key": "preferred_sound", "relation": "=", "value": "chime"} ]}
{ "app_id": "YOUR_APP_ID", "contents": {"en": "You have a new message!"}, "ios_sound": "bell.wav", "android_channel_id": "BELL_CHANNEL_ID", "include_filters": [ {"field": "tag", "key": "preferred_sound", "relation": "=", "value": "bell"} ]}
Cada solicitud apunta solo a los usuarios cuya etiqueta preferred_sound coincide, por lo que cada grupo escucha su propio sonido. Agrega tantas variantes como necesites — una llamada API por sonido.
¿Por qué mi notificación no reproduce el archivo de sonido personalizado?
Hay algunas causas comunes:
El archivo de sonido tiene una extensión de archivo incorrecta
El archivo de sonido no está codificado en un formato soportado
El archivo de sonido está en la ubicación incorrecta en el proyecto
El archivo de sonido tiene más de 30 segundos
iOS — Lee más en la documentación de Apple para guía de codificación y pruebas.Android — Verifica que el archivo de sonido esté incluido en tu APK extrayéndolo y confirmando que existe en res/raw/.Si la reducción de recursos está habilitada, protege los archivos de sonido de ser eliminados creando keep.xml en res/raw/:
¿Por qué mi notificación reproduce el archivo de sonido predeterminado?
Asegúrate de haber seguido las instrucciones de configuración y que el archivo de sonido esté en la ubicación correcta para tu SDK. Verifica el uso de mayúsculas en el nombre del archivo — algunas plataformas ignoran las letras mayúsculas.
En Android, las notificaciones se agrupan después de que se recibe un cierto número sin abrirlas. Las notificaciones agrupadas reproducen un sonido predeterminado. Puedes establecer el sonido con la clave de grupo para todas tus notificaciones.