Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Recall salva automaticamente instantâneos do seu aplicativo, no entanto, os usuários não poderão relançar de volta ao seu conteúdo, a menos que você forneça uma UserActivity no momento do instantâneo. Isso permite retornar Recall o usuário ao que estava vendo naquele momento.
Uma UserActivity se refere a algo específico em que o usuário estava trabalhando em seu aplicativo. Por exemplo, quando um usuário está escrevendo um documento, uma UserActivity
pode fazer referência ao ponto específico do documento em que a escrita foi interrompida. Ao usar um aplicativo de música, a UserActivity
pode ser a playlist que o usuário ouviu pela última vez. Ao desenhar em uma tela, a UserActivity
pode ser o ponto em que o usuário fez sua última marca. Em resumo, a UserActivity
representa um destino em seu aplicativo do Windows para o qual um usuário pode retornar com a finalidade de retomar o que estava fazendo.
Atividades de usuário enviadas por push
Sempre que o conteúdo principal em seu aplicativo for alterado (como o usuário abrindo um email diferente, abrindo 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 que ele salva e usará o ActivationUri
na atividade para permitir ao usuário acessar novamente esse conteúdo.
Recomendamos que você efetue push de atividades do usuário em todos os computadores, mesmo aqueles que não estão em execução 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 aplicativo de uma maneira que seu aplicativo possa recuperá-las.
Opcional: manipulando o evento solicitado
Além de enviar atividades por push, seu aplicativo pode optar por implementar o evento UserActivityRequested
, que o Windows pode executar para garantir que tenha a atividade mais recente do seu aplicativo.
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();
}
}