Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Aktivity uživatelů představují úlohy, které uživatel ve vaší aplikaci provádí. Vytváříte aktivity, které uživatelům umožní pokračovat tam, kde skončili. Aktivity se zobrazují v historii místních aktivit a dají se zobrazit pomocí funkcí Windows, které uživatelům pomáhají vrátit se k předchozím úkolům.
Note
Cloudová synchronizace Časové osy byla v červenci 2021 ukončena. Aktivity uživatelů vytvořené vaší aplikací se ukládají místně a už se nesynchronizují mezi zařízeními prostřednictvím Microsoft Graph časové osy. Historie místních aktivit v zařízení stále funguje.
Předpoklady
- Vaše aplikace musí být zabalená (MSIX) nebo musí mít identitu balíčku.
- Nevyžaduje se žádná deklarace speciálních schopností – rozhraní API UserActivity je k dispozici pro všechny zabalené aplikace.
Vytvoření aktivity uživatele
Použijte třídy UserActivityChannel a 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();
}
Relace aktivit signalizuje, že uživatel je aktuálně zapojen do tohoto úkolu. Odstraňte ho, když uživatel přepne na jiný úkol.
Nastavte bohaté vizuální detaily
Pomocí vlastností userActivityVisualElements popíšete aktivitu uživateli:
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žňují vykreslit celou adaptivní kartu jako vizuální podobu aktivity, ale tato plocha byla součástí Časové osy Windows, kterou společnost Microsoft ukončila. Nepoužívejte AdaptiveCardBuilder v novém kódu – místo toho použijte VisualElements vlastnosti uvedené výše.
Zpracovat aktivaci z aktivity
Když uživatel vybere aktivitu, která se má obnovit, aktivuje se vaše aplikace pomocí identifikátoru URI protokolu. Zpracujte ji v logice aktivace:
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
}
}
Ukončení relace
Když uživatel ukončí práci na aktivitě, ukončete relaci:
UserActivitySession? _currentSession = null;
_currentSession?.Dispose();
_currentSession = null;
Osvědčené postupy
- Použijte smysluplná ID aktivit – ID by mělo jednoznačně identifikovat úkol (například cestu k dokumentu nebo název projektu).
-
Aktualizace aktivit – Volání
SaveAsync(), když uživatel postupuje, aby byl popis aktuální. - Nastavte aktivační identifikátor URI – Vždy zadejte identifikátor URI, aby aktivita mohla aplikaci znovu spustit do správného stavu.
- Vytvořte jednu relaci najednou – před vytvořením nové zlikvidujte předchozí relaci.
Podrobné pokyny najdete v osvědčených postupech pro aktivity uživatelů.
Související obsah
Windows developer