Los sonidos personalizados son una forma de proporcionar una experiencia más única y de marca para tu app. Puedes agregar un sonido personalizado con cada notificación que envíes, o puedes agregar sonidos solo a ciertos tipos de notificaciones. Por ejemplo, un juego como “Jewel Breaker” puede desear tener un sonido similar a una joya que siempre se reproduzca al recibir notificaciones. Mientras tanto, una red social puede desear reproducir sonidos solo cuando el usuario recibe un mensaje de otro usuario para diferenciar esas notificaciones de notificaciones del sistema más genéricas.
Solo para apps móviles. Los sonidos personalizados no están soportados en web push.
Configuración
Crear archivos de sonido
Asegúrate de crear archivos de sonido según las siguientes reglas. Si el dispositivo no puede encontrar el archivo en cuestión, o si el archivo no está en un formato 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. |
Agregar archivos de sonido a la app
Para agregar sonidos a las notificaciones, debes incluir los archivos de sonido como recursos dentro de tu app. Las URLs externas no están soportadas.
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 that they are automatically add 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/raw NOTE: Your sound and icon file names must be lowercase and can’t contain anything else except underscores and numbers. |
| Flutter | main/res/raw |
| .NET | <project-root>/Platforms/Android/Resources/raw/ |
Enviar notificaciones
Agrega la extensión del archivo al hacer referencia al recurso de sonido. Por ejemplo, explode_sound.wav. Configúralo 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. Android 8+ introdujo Notification Categories que deben configurarse para personalizar sonidos de notificación. OneSignal usará el sonido establecido 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. Por ejemplo,
cat_meow_sound.
- Para sin sonido, establece Importance a “Urgent” o “High” y Sound a “Off”. O puedes establecer Importance a “Medium” o “Low” para sin sonido.
Establecer el 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 establecido en la categoría funcionará para todas las versiones de Android.Establecer el nombre de categoría para una notificación en el dashboard
En lugar de enviar a través del dashboard, puedes enviar notificaciones con sonidos en el REST API usando el parámetro apropiado y extensión de archivo dependiendo de tu plataforma (consulta más en documentación de REST API Create notification).| Plataforma | Parámetro API | Detalles |
|---|
| iOS | ios_sound | Incluir extensión de archivo. Ejemplo: ios_sound : expload_sound.wav Sin sonido, pasar nil. |
| Android | android_channel_id - Usar si creaste el canal en el Dashboard de OneSignal Notification Categories. existing_android_channel_id - Usar si creaste el canal en otro lugar | Altamente recomendado usar Android Notification Categories |
| Huawei | huawei_channel_id - Usar si creaste el canal en el Dashboard de OneSignal Notification Categories. huawei_existing_channel_id - Usar si creaste el canal en otro lugar | Altamente recomendado usar Android Notification Categories |
| Amazon | adm_sound | No incluir extensión de archivo. Ejemplo: adm_sound : exploade_sound |
Si agregaste muy recientemente un recurso de sonido a tu app, es posible que desees esperar unos días antes de enviar notificaciones usando el sonido. Esto se debe a que puede tomar muchos días o incluso semanas para que la mayoría de tus usuarios actualicen sus apps a la última versión que contiene tu nuevo recurso de sonido.Si un usuario tiene una versión anterior de tu app sin el recurso de sonido y recibe una notificación que lo referencia, solo escuchará el sonido de notificación del sistema predeterminado.
FAQ
¿Puedo establecer un sonido predeterminado?
Usa una Template que haga referencia al sonido y/o Android Notification Channel.
¿Por qué mi notificación no reproduce el archivo de sonido personalizado?
Hay algunas razones por las que un sonido puede no reproducirse.
- 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
- El archivo de sonido es demasiado largo
Actualmente OneSignal no registra los problemas incorrectos de recursos, estamos trabajando en agregar esto a tus registros.
iOS - Lee más en la documentación de Apple para consejos sobre cómo codificar archivos y probarlos.
Android - Asegúrate de que se esté construyendo en tu APK extrayéndolo y asegurándote de que esté ubicado en res/raw/.
Si la reducción de recursos está habilitada, puedes proteger los archivos de sonido de ser eliminados creando keep.xml en res/raw/ con el siguiente código
<resources xmlns:tools="http://schemas.android.com/tools"
tools:keep="@raw/sound_file"/>
¿Por qué mi notificación reproduce el archivo de sonido predeterminado?
Por favor asegúrate de que hayas seguido las instrucciones de configuración cuidadosamente y que el archivo de sonido esté en la ubicación correcta para el SDK.
¿Por qué se reproduce el sonido incorrecto?
En Android, las notificaciones se agruparán después de que se reciba una cierta cantidad en el dispositivo sin abrirlas. Las notificaciones agrupadas reproducen un sonido predeterminado. Puedes establecer el sonido con el GROUPKEY para todas tus notificaciones.