Configuración de la cuenta
Customer App puede ofrecer Idiomas, preferencias de notificaciones promocionales, Seguridad/Sesiones y Cerrar sesión como superficies independientes. Su visibilidad y actualización dependen de la cuenta, el proyecto, la configuración, el tipo de sesión, el dispositivo y el ciclo de vida del proveedor actuales.
Que se seleccione un idioma, cambie un interruptor, desaparezca una sesión o se cierre la pantalla de la cuenta no demuestra que se hayan actualizado todos los estados locales, del servidor, dispositivo, push o proveedor. Si se pierde una respuesta, mantén el resultado desconocido y no repitas una acción destructiva solo para forzar un resultado visible.
Mantener separadas las superficies de configuración
| Superficie | Qué puede controlar | Qué no demuestra |
|---|---|---|
| Idiomas | El idioma seleccionado para la aplicación y el contexto de traducción | Que todas las pantallas, valores en caché, proveedores o mensajes devueltos del servicio hayan cambiado a la vez |
| Notificaciones | Preferencias promocionales de correo electrónico, SMS y push para la cuenta actual | Permiso de notificaciones del sistema operativo, titularidad de la instalación del dispositivo, entrega del proveedor ni elegibilidad para funciones no relacionadas |
| Seguridad/Sesiones | Una lista de sesiones compatible y controles explícitos para una, la actual, las otras o todas | Revocación inmediata en todas partes, cierre de sesión del proveedor, finalización de push ni eliminación del estado privado en caché |
| Cerrar sesión | Una solicitud independiente para cerrar la sesión local/del servidor de la aplicación actual | Que se hayan eliminado las demás sesiones, la instalación de dispositivos, la identidad del proveedor, la sala, las funciones de retorno o las vistas previas de notificación |
Que falte una fila no es un error ni prueba de que se pueda habilitar la función.
Trabajo al abrir la superficie y acciones explícitas
Al abrir una superficie de configuración ya pueden iniciarse lecturas o cambios de estado:
| Superficie abierta | Posible trabajo inicial al montarse | Acción explícita del cliente |
|---|---|---|
| Configuración del perfil | Resolver la visibilidad de las filas y los idiomas disponibles | Seleccionar una fila disponible |
| Idiomas | Cargar idiomas y traducciones; conciliar un idioma guardado o predeterminado | Seleccionar otro idioma |
| Notificaciones | Actualizar los datos de la cuenta e inicializar el estado de los canales promocionales | Cambiar el interruptor de un canal |
| Seguridad/Sesiones | Cargar una lista de sesiones compatible | Revocar una sesión, todas excepto la actual, todas incluyéndola o solicitar que se active la administración de sesiones |
| Control Cerrar sesión | Mostrar el control no cierra sesión; al solicitar el cierre, se lee el estado local de instalación de notificaciones | Solicitar Cerrar sesión |
Al abrir Notificaciones puede comenzar a guardarse una preferencia desde el estado inicializado, incluso antes de usar un interruptor. No supongas que abrir la pantalla es de solo lectura; considera que una preferencia cambió solo después de una acción explícita y un resultado actual.
Selección de idioma y actualización
El idioma tiene más de un estado: selección visible, opción guardada localmente, idioma compartido de la aplicación/API y diccionario de traducción devuelto. Al seleccionar una fila, la opción visible puede cambiar antes de que se actualicen todas las capas.
Si cambia solo una parte del texto, la carga continúa o vuelve el idioma anterior, considera el resultado sin resolver. No selecciones repetidamente idiomas ni cambies de proyecto para probarlo. También puede faltar una fila de idioma si hay menos de dos idiomas aptos.
Preferencias de notificaciones, permisos y entrega
Estos estados deben mantenerse separados:
| Estado | Responsable | Límite |
|---|---|---|
| Preferencia de canal promocional | Servicio de configuración/cuenta actual | Requiere consentimiento explícito y específico para el canal, vinculado a su propósito, cuenta, proyecto, política y fecha |
| Permiso de notificaciones del sistema operativo | Sistema operativo del dispositivo | El permiso no crea consentimiento para la cuenta ni demuestra que la instalación del dispositivo esté vigente |
| Instalación de notificaciones del dispositivo | Ciclo de vida de la aplicación/backend | Debe pertenecer a la generación actual de cuenta/proyecto/dispositivo y rotarse o eliminarse de forma segura |
| Aceptación del proveedor | Proveedor de push | No demuestra que el sistema operativo la mostrara, que el cliente la viera ni que llegara a la audiencia correcta y actual |
| Estado operativo en la aplicación | Superficie responsable de pedido/mensaje/cuenta | Debe autorizarse y conciliarse independientemente de la preferencia de marketing o el permiso del sistema operativo |
Desactivar una preferencia promocional no debe describirse como revocación del permiso del sistema operativo ni como prueba de que se eliminó la instalación del dispositivo o del proveedor. Del mismo modo, habilitar el permiso del sistema operativo no inscribe a la cuenta en notificaciones promocionales por correo, SMS o push. El estado de notificaciones no es una regla válida de elegibilidad para una función no relacionada.
Seguridad y acciones de sesión
| Acción | Interpretación segura |
|---|---|
| Cargar sesiones | Una lista en un momento dado para una estrategia de sesión compatible; las entradas pueden estar desactualizadas o incompletas |
| Revocar otra sesión | Una solicitud de revocación para esa sesión; la fila local no confirma de manera autorizada la revocación |
| Revocar la sesión actual | Una solicitud que puede cerrar la sesión local solo después de recibir una respuesta compatible |
| Revocar todas excepto la actual | Una solicitud para conservar la sesión actual y revocar las demás |
| Revocar todas, incluida la actual | Una solicitud que puede cerrar la sesión local tras actualizarse el servidor |
| Activar la administración de sesiones | Una solicitud para cambiar cómo se representan las sesiones; no es un inicio de sesión nuevo ni un reinicio universal de dispositivos |
Revocar una sesión y desmantelar el estado del dispositivo/proveedor son operaciones diferentes. Una sesión revocada debe dejar de usarse con autorización, pero quitar una fila de sesión no demuestra que se hayan eliminado las instalaciones de push, salas de socket, credenciales del SDK en caché o funciones de retorno tardías.
Cerrar sesión es un ciclo de vida independiente
Cerrar sesión puede solicitar el cierre en el servidor y luego eliminar el estado de sesión local y restablecer el estado seleccionado de la aplicación después de recibir una respuesta compatible. También puede enviar al servidor la instalación de notificaciones conocida en ese momento. No equivale a revocar todas las sesiones ni demuestra que se haya limpiado por completo el estado de push/proveedor.
Si se pierde la respuesta al cerrar sesión, el estado del servidor y el local pueden no coincidir. No supongas que una pantalla de Perfil devuelta, una fila ausente o una notificación conservada demuestre éxito o fallo. Antes de cambiar otra vez la configuración, vuelve a establecer el estado actual de sesión iniciada mediante el punto de entrada habitual de la aplicación.
Resultados optimistas y desconocidos
| Resultado observable | Interpretación segura |
|---|---|
| La selección o el interruptor cambian inmediatamente | Presentación local/optimista; el resultado del servidor puede seguir pendiente |
| Aparece un mensaje de éxito | Se aceptó una respuesta; las demás capas locales/dispositivo/proveedor siguen siendo independientes |
| Aparece un error y el control conserva el cambio | El estado local y el servidor pueden diferir; no infieras que se haya revertido |
| Desaparece una fila de sesión | Cambió la lista local; la revocación autorizada y la limpieza posterior requieren confirmación |
| Se cierra la pantalla o la cuenta vuelve al punto de entrada | Cambió el estado de navegación/local; el cierre o la revocación del servidor aún pueden ser desconocidos |
| Se pierde la respuesta o se reinicia la aplicación | Mantén desconocida la operación exacta; no la repitas automáticamente |
Solucionar problemas de forma segura
Falta una fila de configuración
Usa solo las filas disponibles actualmente. No uses una ruta privada ni otra cuenta/proyecto para forzar la superficie.
El idioma cambió solo en parte de la aplicación
Considera el estado de traducción sin resolver. Evita cambiar repetidamente el idioma o proyecto hasta que se estabilice el contexto actual de la aplicación.
Cambió un interruptor de notificación o volvió a su estado anterior
Considera desconocida la preferencia de la cuenta. No cambies el permiso del sistema operativo ni envíes una notificación de prueba para averiguar el resultado.
Siguen apareciendo notificaciones tras desactivar una preferencia promocional
La preferencia promocional, los avisos operativos, el permiso del sistema operativo, la instalación del dispositivo y la entrega del proveedor son estados distintos. No infieras que alguna de esas capas haya fallado o tenido éxito a partir de una sola notificación.
Una acción de sesión está ocupada, da error o pierde su respuesta
No la repitas ni elijas una acción más amplia para revocar todas las sesiones. Concilia la lista de sesiones actual desde la misma superficie de Seguridad autorizada.
Cerrar sesión abre una pantalla inesperada o siguen llegando notificaciones
No infieras que se completaron el cierre de sesión o la limpieza del proveedor. Evita copiar datos de cuenta, sesión, dispositivo o notificación en diagnósticos.
Accesibilidad y privacidad
Cada fila, opción de idioma, interruptor de notificación, marca de sesión actual, acción destructiva, confirmación, estado ocupado/error/desconocido y control Cerrar sesión necesita un nombre, rol, estado, consecuencia, orden del foco y retorno predecible. El texto grande debe mantener visibles las consecuencias y las acciones Cancelar; los lectores de pantalla deben anunciar la selección, estado marcado, sesión actual, progreso, error y actualización sin exponer datos privados de sesión o dispositivo.
Estos son requisitos de accesibilidad y privacidad; no establecen que esas áreas tengan soporte actualmente.
Qué puede afectar la configuración
El comportamiento puede variar según las condiciones de las filas de Perfil; las lecturas, el almacenamiento, el idioma de API o las traducciones disponibles; los valores predeterminados y comportamiento al abrir/cambiar preferencias de notificación, consentimiento, permiso del sistema operativo, instalación del dispositivo o ciclo de vida del proveedor de push; la estrategia de sesiones, la lista y la revocación de sesiones actuales/todas; el cierre en servidor/local; el cambio de cuenta/proyecto, la limpieza de sockets/proveedores; la accesibilidad; o los cambios en la aplicación, sus componentes o servicios relacionados.
Guías relacionadas: Descripción general del perfil y la cuenta · Privacidad y consentimiento · Usar la aplicación sin conexión y volver a conectarse · Comportamiento de la plataforma y accesibilidad · Límites de las notificaciones push · Variantes de experiencia de Customer App