Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Användaraktiviteter representerar uppgifter som en användare utför i din app. Du skapar aktiviteter så att användarna kan fortsätta där de slutade. Aktiviteter visas i den lokala aktivitetshistoriken och kan visas med Windows funktioner som hjälper användare att återgå till tidigare uppgifter.
Note
Tidslinjemolnsynkronisering inaktuell i juli 2021. Användaraktiviteter som skapats av din app lagras lokalt och synkroniseras inte längre mellan enheter via Microsoft Graph tidslinje. Lokal aktivitetshistorik på enheten fungerar fortfarande.
Förutsättningar
- Din app måste vara paketerad (MSIX) eller ha paketidentitet.
- Ingen särskild kapacitetsdeklaration krävs – UserActivity-API:et är tillgängligt för alla paketerade appar.
Skapa en användaraktivitet
Använd klasserna UserActivityChannel och 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();
}
Aktivitetssessionen signalerar att användaren för närvarande är engagerad i den här uppgiften. Ta bort den när användaren växlar till en annan uppgift.
Ange detaljerad visuell information
Använd egenskaperna i UserActivityVisualElements för att beskriva aktiviteten för användaren:
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) låter dig återge ett komplett Adaptive Card som det visuella elementet för en aktivitet, men den visningsytan var en del av Windows Timeline, som Microsoft har avvecklat. Använd AdaptiveCardBuilder inte i ny kod – använd egenskaperna VisualElements som visas ovan i stället.
Hantera aktivering från en aktivitet
När användaren väljer en aktivitet som ska återupptas aktiveras appen med en protokoll-URI. Hantera det i aktiveringslogik:
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
}
}
Avsluta sessionen
När användaren slutar arbeta med aktiviteten tar du bort sessionen:
UserActivitySession? _currentSession = null;
_currentSession?.Dispose();
_currentSession = null;
Metodtips
- Använd meningsfulla aktivitets-ID: t – ID:t bör unikt identifiera uppgiften (till exempel en dokumentsökväg eller projektnamn).
-
Uppdatera aktiviteter – Anropa
SaveAsync()när användaren gör framsteg för att hålla beskrivningen aktuell. - Ange en aktiverings-URI – Ange alltid en URI så att aktiviteten kan starta om appen till rätt tillstånd.
- Skapa en session i taget – Ta bort föregående session innan du skapar en ny.
Detaljerad vägledning finns i Metodtips för användaraktiviteter.
Relaterat innehåll
Windows developer