Felhasználói tevékenységek létrehozása Windows App SDK alkalmazásokban

A felhasználói tevékenységek olyan feladatokat jelölnek, amelyeket egy felhasználó hajt végre az alkalmazásban. Olyan tevékenységeket hoz létre, amelyek lehetővé teszik a felhasználók számára, hogy ott folytassanak, ahol abbahagyták. A tevékenységek megjelennek a helyi tevékenységelőzményekben, és a Windows funkciói megjeleníthetik őket, hogy segítsenek a felhasználóknak visszatérni a korábbi feladatokhoz.

Note

A Timeline felhőszinkronizálása 2021 júliusában kivezetésre került. Az alkalmazás által létrehozott felhasználói tevékenységek helyileg vannak tárolva, és többé nem szinkronizálódnak az eszközök között Microsoft Graph idővonalon keresztül. A helyi tevékenységelőzmény az eszközön továbbra is működik.

Prerequisites

  • Az alkalmazásnak csomagolva (MSIX) kell lennie, vagy csomagazonosítóval kell rendelkeznie.
  • Nincs szükség speciális képességdeklarációra – a UserActivity API minden csomagolt alkalmazás számára elérhető.

Felhasználói tevékenység létrehozása

Használja a UserActivityChannel és a UserActivity osztályt:

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();
}

A tevékenység-munkamenet azt jelzi, hogy a felhasználó jelenleg foglalkozik ezzel a feladattal. Helyezze el, amikor a felhasználó másik feladatra vált.

Gazdag vizuális részletek beállítása

A UserActivityVisualElements tulajdonságaival írja le a felhasználónak a tevékenységet:

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) lehetővé teszik, hogy egy teljes Adaptív kártyát egy tevékenység vizuális megjelenítéseként jelenítsen meg, de ez a felület a Windows Idővonal része volt, amelyet a Microsoft megszüntetett. Ne használja AdaptiveCardBuilder az új kódban – használja helyette a VisualElements fenti tulajdonságokat.

Tevékenység aktiválásának kezelése

Amikor a felhasználó kiválaszt egy tevékenységet a folytatáshoz, az alkalmazás aktiválva lesz egy protokoll URI-val. Kezelje az aktiválási logikájában:

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
    }
}

A munkamenet befejezése

Ha a felhasználó nem dolgozik a tevékenységen, dobja el a munkamenetet:

UserActivitySession? _currentSession = null;

_currentSession?.Dispose();
_currentSession = null;

Bevált gyakorlatok

  • Hasznos tevékenységazonosítók használata – Az azonosítónak egyedileg kell azonosítania a tevékenységet (például egy dokumentum elérési útját vagy a projekt nevét).
  • Tevékenységek frissítése – Hívás SaveAsync() , ha a felhasználó előrehaladást végez a leírás naprakészen tartásához.
  • Aktiválási URI beállítása – Mindig adjon meg egy URI-t, hogy a tevékenység a megfelelő állapotba indítsa újra az alkalmazást.
  • Hozzon létre egyszerre egy munkamenetet – Az előző munkamenet elvetése az új létrehozása előtt.

Részletes útmutatásért tekintse meg a felhasználói tevékenységek ajánlott eljárásait.