Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las actividades del usuario representan las tareas que realiza un usuario en la aplicación. Creas actividades para permitir que los usuarios retomen lo que dejaron. Las actividades aparecen en el historial de actividad local y pueden mostrarse mediante funciones de Windows que ayudan a los usuarios a reanudar tareas anteriores.
Note
La sincronización en la nube de Timeline quedó obsoleta en julio de 2021. Las actividades de usuario creadas por tu aplicación se almacenan localmente y ya no se sincronizan en distintos dispositivos a través de la Línea de tiempo de Microsoft Graph. El historial de actividad local en el dispositivo sigue funcionando.
Prerequisites
- La aplicación debe empaquetarse (MSIX) o tener la identidad del paquete.
- No se requiere ninguna declaración de funcionalidad especial: la API UserActivity está disponible para todas las aplicaciones empaquetadas.
Creación de una actividad de usuario
Use las clases UserActivityChannel y UserActivity :
using Windows.ApplicationModel.UserActivities;
private UserActivitySession? _currentSession;
private async Task CreateActivityAsync()
{
var channel = UserActivityChannel.GetDefault();
var activity = await channel.GetOrCreateUserActivityAsync("document-123");
activity.ActivationUri = new Uri("myapp://open?doc=123");
activity.VisualElements.DisplayText = "Quarterly Report";
activity.VisualElements.Description = "Working on Q4 financial summary";
await activity.SaveAsync();
_currentSession = activity.CreateSession();
}
La sesión de actividad indica que el usuario está comprometido actualmente con esta tarea. Desechelo cuando el usuario cambie a una tarea diferente.
Añade más detalles visuales
Use las propiedades de UserActivityVisualElements para describir la actividad al usuario:
UserActivity activity = new UserActivity("quarterly-report");
activity.VisualElements.DisplayText = "Quarterly Report";
activity.VisualElements.Description = "Last edited: Section 3 - Revenue Analysis";
activity.VisualElements.Attribution = new UserActivityAttribution(
new Uri("ms-appx:///Assets/AppIcon.png"));
Note
AdaptiveCardBuilder (Windows.UI.Shell) permiten mostrar una tarjeta adaptable completa como elemento visual de una actividad, pero esa superficie formaba parte de Windows Timeline, que Microsoft retiró. No use AdaptiveCardBuilder en el nuevo código: use las VisualElements propiedades que se muestran anteriormente en su lugar.
Gestionar la activación desde una actividad
Cuando el usuario selecciona una actividad para reanudarla, la aplicación se activa con un URI de protocolo. Ocúpate de ello en la lógica de activación:
var activatedArgs = AppInstance.GetCurrent().GetActivatedEventArgs();
if (activatedArgs.Kind == ExtendedActivationKind.Protocol)
{
var protocolArgs = activatedArgs.Data as Windows.ApplicationModel.Activation.IProtocolActivatedEventArgs;
if (protocolArgs?.Uri.Scheme == "myapp")
{
// Parse the query string manually; System.Web.HttpUtility isn't
// available to apps that target .NET (as opposed to .NET Framework).
string? docId = protocolArgs.Uri.Query
.TrimStart('?')
.Split('&', StringSplitOptions.RemoveEmptyEntries)
.Select(pair => pair.Split('=', 2))
.FirstOrDefault(pair => pair[0] == "doc")
?.ElementAtOrDefault(1);
// Navigate to the document
}
}
Finalizar la sesión
Cuando el usuario deje de trabajar en la actividad, elimine la sesión:
UserActivitySession? _currentSession = null;
_currentSession?.Dispose();
_currentSession = null;
Prácticas recomendadas
- Usar identificadores de actividad significativos : el identificador debe identificar de forma única la tarea (por ejemplo, una ruta de acceso de documento o un nombre de proyecto).
-
Actualizar actividades : llame a
SaveAsync()cuando el usuario realice el progreso para mantener la descripción actualizada. - Establecer un URI de activación : proporcione siempre un URI para que la actividad pueda volver a iniciar la aplicación en el estado correcto.
- Crear una sesión a la vez : elimine la sesión anterior antes de crear una nueva.
Para obtener instrucciones detalladas, consulte Procedimientos recomendados de las actividades del usuario.