Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Recall Automatycznie zapisuje migawki aplikacji, jednak użytkownicy nie będą mogli ponownie ponownie uruchomić zawartości, chyba że udostępnisz element UserActivity w momencie utworzenia migawki. Umożliwia Recall to uruchomienie użytkownika z powrotem do tego, co było widoczne w tym czasie.
UserActivity odnosi się do konkretnego elementu, nad którym użytkownik pracował w Twojej aplikacji. Na przykład gdy użytkownik pisze dokument, UserActivity
może odwoływać się do określonego miejsca w dokumencie, w którym użytkownik zrezygnował z zapisywania. Podczas słuchania aplikacji muzycznej UserActivity
może być listą odtwarzania, którą użytkownik ostatnio słuchał. Podczas rysowania na płótnie UserActivity
może być miejscem, w którym użytkownik ostatnio zrobił znak. Podsumowując, UserActivity
reprezentuje miejsce docelowe w aplikacji systemu Windows, do którego użytkownik może wrócić, aby mógł wznowić działanie.
Przesyłanie działań użytkownika
Za każdym razem, gdy główna zawartość w aplikacji zmieni się (na przykład użytkownik otwierający inną wiadomość e-mail, otwierając inną stronę internetową itp.), aplikacja powinna rejestrować nową UserActivitySession
zawartość, aby system wiedział, jaka zawartość jest obecnie otwarta.
Recall Następnie skojarzy najnowsze UserActivity
z migawką, którą zapisze, i użyje elementu ActivationUri
w ramach działania, aby umożliwić użytkownikowi ponowne uruchamianie tej zawartości.
Zalecamy synchronizowanie działań użytkowników do wszystkich komputerów, nawet tych, które nie działają 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();
}
Uwaga / Notatka
Metoda GetOrCreateUserActivityAsync zawsze zwraca nowe działanie w najnowszych wersjach systemu Windows. Możliwość pobrania wcześniej zapisanych działań została usunięta, a system Windows nie przechowuje już poprzednich działań aplikacji w taki sposób, aby aplikacja mogła je pobrać.
Opcjonalnie: obsługa żądanego zdarzenia
Oprócz przesyłania działań aplikacja może zdecydować się na zaimplementowanie UserActivityRequested
zdarzenia, które mogą zostać wyzwolone przez system Windows, aby upewnić się, że ma ona najnowsze działanie twojej aplikacji.
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();
}
}