Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Recall salva automaticamente instantâneos do seu aplicativo, no entanto, os usuários não poderão reiniciar novamente o seu conteúdo, a menos que você forneça uma UserActivity no momento do instantâneo. Isso permite Recall lançar o usuário de volta ao que estava sendo visto naquele momento.
Um UserActivity refere-se a algo específico em que o usuário estava trabalhando em seu aplicativo. Por exemplo, quando um usuário está escrevendo um documento, um UserActivity
pode se referir ao local específico no documento onde o usuário parou de escrever. Ao utilizar uma aplicação de música, o UserActivity
pode ser a lista de reprodução que o utilizador ouviu pela última vez. Ao desenhar num quadro, o UserActivity
pode indicar onde o utilizador marcou por último. Em resumo, um UserActivity
representa um destino dentro do seu aplicativo do Windows ao qual um usuário pode retornar para que possa retomar o que estava fazendo.
Impulsionando as atividades do usuário
Sempre que o conteúdo principal do seu aplicativo for alterado (como o usuário abrir um e-mail diferente, abrir uma página da Web diferente, etc.), seu aplicativo deve registrar um novo UserActivitySession
para que o sistema saiba qual conteúdo está aberto no momento.
Recall Em seguida, associará o mais recente UserActivity
ao instantâneo salvo e usará o ActivationUri
na atividade para permitir que o usuário reinicie esse conteúdo.
Recomendamos que envie as atividades do utilizador em todos os PCs, mesmo naqueles que não estão a executar Recall.
UserActivitySession _previousSession;
private async Task OnContentChangedAsync()
{
// Dispose of any previous session (which automatically logs the end of the interaction with that content)
_previousSession?.Dispose();
// Generate an identifier that uniquely maps to your new content.
string id = "doc135.txt";
// Create a new user activity that represents your new content
var activity = await UserActivityChannel.GetDefault().GetOrCreateUserActivityAsync(id);
// Populate the required properties
activity.DisplayText = "doc135.txt";
activity.ActivationUri = new Uri("my-app://docs/doc135.txt");
// Save the activity
await activity.SaveAsync();
// And start a new session tracking the engagement with this new activity
_previousSession = activity.CreateSession();
}
Observação
O método GetOrCreateUserActivityAsync sempre retornará uma nova atividade nas versões mais recentes do Windows. A capacidade de obter suas atividades salvas anteriormente foi removida e o Windows não armazena mais as atividades anteriores do seu aplicativo de forma que seu aplicativo possa recuperá-las.
Opcional: Tratamento do evento solicitado
Além de enviar atividades por push, a sua aplicação pode optar por implementar o evento UserActivityRequested
, que o Windows pode acionar para garantir que tenha a atividade mais recente da sua aplicação.
public void OnLaunched()
{
UserActivityRequestManager.GetForCurrentView().UserActivityRequested += UserActivityRequested;
}
private async void UserActivityRequested(
Windows.ApplicationModel.UserActivities.UserActivityRequestManager sender,
Windows.ApplicationModel.UserActivities.UserActivityRequestedEventArgs args)
{
// Start a deferral so you can use async code
var deferral = args.GetDeferral();
try
{
// Generate an identifier that uniquely maps to your current content.
string id = "doc135.txt";
// Create a user activity that represents your current content
var activity = await UserActivityChannel.GetDefault().GetOrCreateUserActivityAsync(id);
// Populate the required properties
activity.DisplayText = "doc135.txt";
activity.ActivationUri = new Uri("my-app://docs/doc135.txt");
// And return the activity to the event handler
args.Request.SetUserActivity(activity);
}
finally
{
// And complete the deferral
deferral.Complete();
}
}