Notatka
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.
Działania użytkownika reprezentują zadania wykonywane przez użytkownika w aplikacji. Tworzysz aktywności, aby umożliwić użytkownikom powrót do miejsca, w którym przerwali. Działania są wyświetlane w lokalnej historii działań i mogą być udostępniane przez funkcje Windows, które ułatwiają użytkownikom powrót do poprzednich zadań.
Note
Synchronizacja z chmurą osi czasu została wycofana w lipcu 2021 r. Działania użytkownika utworzone przez aplikację są przechowywane lokalnie i nie są już synchronizowane między urządzeniami za pośrednictwem Microsoft Graph osi czasu. Historia działań lokalnych na urządzeniu nadal działa.
Wymagania wstępne
- Aplikacja musi być spakietowana w formacie MSIX lub mieć identyfikator pakietu.
- Nie jest wymagana żadna specjalna deklaracja możliwości — interfejs API UserActivity jest dostępny dla wszystkich spakowanych aplikacji.
Utwórz aktywność użytkownika
Użyj klas UserActivityChannel i 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();
}
Sesja aktywności sygnalizuje, że użytkownik jest obecnie zaangażowany w to zadanie. Usuwaj go, gdy użytkownik przełączy się do innego zadania.
Ustaw bogate szczegóły wizualne
Użyj właściwości elementu UserActivityVisualElements , aby opisać działanie użytkownikowi:
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) umożliwiają renderowanie pełnej karty adaptacyjnej jako wizualnej reprezentacji działania, ale ten obszar interfejsu był częścią Osi czasu systemu Windows, którą firma Microsoft wycofała z użytku. Nie używaj AdaptiveCardBuilder w nowym kodzie — zamiast tego użyj VisualElements właściwości przedstawionych powyżej.
Obsługiwanie aktywacji z aktywności
Gdy użytkownik wybierze działanie do wznowienia, aplikacja zostanie aktywowana przy użyciu identyfikatora URI protokołu. Obsłuż je w logice aktywacji:
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
}
}
Kończ sesję
Gdy użytkownik przestanie pracować nad działaniem, należy usunąć sesję:
UserActivitySession? _currentSession = null;
_currentSession?.Dispose();
_currentSession = null;
Najlepsze praktyki
- Użyj znaczących identyfikatorów działań — identyfikator powinien jednoznacznie zidentyfikować zadanie (na przykład ścieżkę dokumentu lub nazwę projektu).
-
Aktualizowanie aktywności — wywołaj
SaveAsync(), gdy użytkownik robi postępy, aby opis był aktualny. - Ustaw URI aktywacji — zawsze podawaj identyfikator URI, aby działanie mogło ponownie uruchomić aplikację we właściwym stanie.
- Utwórz jedną sesję naraz — usuwaj poprzednią sesję przed utworzeniem nowej sesji.
Aby uzyskać szczegółowe wskazówki, zobacz Najlepsze rozwiązania dotyczące działań użytkowników.