Boas práticas de atividades dos utilizadores

As atividades dos utilizadores ajudam os utilizadores a retomar tarefas que começaram na sua aplicação. Siga estas orientações para criar atividades úteis, claras e bem estruturadas.

Orientações gerais

Crie atividades para tarefas significativas

Crie atividades para tarefas às quais o utilizador queira regressar mais tarde. Os bons candidatos incluem:

  • Documentos — Um documento, folha de cálculo ou ficheiro específico que o utilizador está a editar.
  • Projetos — Um espaço de trabalho de projeto, design ou base de código.
  • Media — Uma música, vídeo ou podcast que o utilizador estava a reproduzir.
  • Progresso do jogo — Uma sessão de jogo, nível ou ponto de controlo.

Não crie atividades para ações triviais como visualizar definições, percorrer uma lista ou navegar entre páginas.

Utilize texto descritivo apresentado

  • Define DisplayText um nome conciso e reconhecível (por exemplo, "Relatório Trimestral" ou "Capítulo 5: A Jornada").
  • Definir Description para indicar contexto ou progresso (por exemplo, "Edição da Secção 3 — Análise de Receitas").
  • Evita textos genéricos como "Sem título" ou "A trabalhar em algo."

Atualize as atividades à medida que o utilizador avança

Chame SaveAsync() periodicamente para atualizar a descrição com a posição atual do utilizador:

UserActivity activity = new UserActivity("quarterly-report");
int currentPage = 3;
int totalPages = 10;

activity.VisualElements.Description = $"Page {currentPage} of {totalPages}";
await activity.SaveAsync();

Padrões de atividade por tipo de aplicação

Aplicações baseadas em documentos

  • Use o caminho do ficheiro do documento ou o identificador único como ID de atividade.
  • Definir ActivationUri para abrir o documento específico.
  • Atualize Description com a secção atual ou edite a localização.

Jogos

  • Use a ranhura de gravação ou o identificador de sessão como identificador da atividade.
  • Defina DisplayText como o nível atual ou o nome da missão.
  • Inclua o progresso na descrição (por exemplo, "Nível 12 — 85% concluído").

Aplicações multimédia

  • Use o identificador do item media como ID de atividade.
  • Define DisplayText o nome da faixa ou do episódio.
  • Inclua a posição de reprodução na descrição (por exemplo, "34:15 / 1:02:00").

Aplicações específicas para setores empresariais

  • Use o identificador do objeto de negócio (número de encomenda, ID do cliente, número do caso) como ID de atividade.
  • Define DisplayText para o nome ou número do objeto.
  • Atualize frequentemente à medida que o utilizador avança num fluxo de trabalho.

Orientações visuais detalhadas

Ao definir os detalhes visuais da atividade:

  • Mantenha DisplayText breve — uma linha que identifica a tarefa.
  • Use Description para uma única linha de contexto ou progresso, não para um parágrafo.
  • Defina um Attribution ícone para que a atividade seja reconhecível no histórico da atividade.
  • Define sempre DisplayText, mesmo que também definas outras propriedades visuais, para que a atividade tenha uma alternativa legível.
UserActivity activity = new UserActivity("quarterly-report");

activity.VisualElements.DisplayText = "Quarterly Report"; // Fallback
activity.VisualElements.Description = "Page 3 of 10";

Note

Versões anteriores desta orientação recomendavam anexar um Cartão Adaptativo completo (AdaptiveCardBuilder, no Windows.UI.Shell namespace) como visual da atividade. Essa API fazia parte do Windows Timeline, que a Microsoft retirou. Não use AdaptiveCardBuilder em código novo — use, em vez disso, as propriedades VisualElements mostradas acima.

Diretrizes para URIs de ativação

  • Use um esquema de protocolo personalizado registado na sua aplicação (por exemplo, myapp://).
  • Inclua informação suficiente no URI para navegar diretamente até à tarefa.
  • Mantenha os URIs estáveis — não inclua tokens específicos da sessão que expiram.

Example:

myapp://document/quarterly-report-2026?page=12

Gestão de sessões

  • Crie um UserActivitySession quando o utilizador começa a trabalhar numa tarefa.
  • Elimine a sessão quando o utilizador muda para outra tarefa.
  • Mantém apenas uma sessão ativa de cada vez por canal de atividade.