Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Kullanıcı etkinlikleri, bir kullanıcının uygulamanızda gerçekleştirdiği görevleri temsil eder. Kullanıcıların kaldıkları yerden devam etmelerini sağlamak için etkinlikler oluşturursunuz. Etkinlikler yerel etkinlik geçmişinde görünür ve kullanıcıların önceki görevlere dönmesine yardımcı olan Windows özelliklerle ortaya çıkarılabilir.
Note
Zaman çizelgesi bulut eşitlemesi Temmuz 2021'de kullanım dışı bırakıldı. Uygulamanız tarafından oluşturulan kullanıcı etkinlikleri yerel olarak depolanır ve artık Microsoft Graph Zaman Çizelgesi aracılığıyla cihazlar arasında eşitlenmez. Cihazdaki yerel etkinlik geçmişi çalışmaya devam eder.
Prerequisites
- Uygulamanızın paketlenmiş (MSIX) olması veya paket kimliğine sahip olması gerekir.
- Özel yetenek bildirimi gerekmez; UserActivity API'sini tüm paketlenmiş uygulamalar kullanabilir.
Kullanıcı etkinliği oluşturma
UserActivityChannel ve UserActivity sınıflarını kullanın:
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();
}
Etkinlik oturumu, kullanıcının şu anda bu görevle meşgul olduğunu belirtir. Kullanıcı farklı bir göreve geçtiğinde kaldırın.
Zengin görsel ayrıntıları ayarlama
Kullanıcıya etkinliği açıklamak için UserActivityVisualElements üzerindeki özellikleri kullanın:
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) tam bir Uyarlamalı Kartı bir etkinliğin görseli olarak görüntülemenize olanak tanır, ancak bu yüzey Microsoft'un kullanımdan kaldırdığı Windows Zaman Çizelgesi'nin bir parçasıydı. Yeni kodda kullanmayın AdaptiveCardBuilder ; bunun yerine yukarıda gösterilen özellikleri kullanın VisualElements .
Bir activity'den etkinleştirmeyi işleme
Kullanıcı sürdürülecek bir etkinlik seçtiğinde, uygulamanız bir protokol URI'siyle etkinleştirilir. Bunu etkinleştirme mantığınızda ele alın:
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
}
}
Oturumu sonlandırma
Kullanıcı etkinlik üzerinde çalışmayı bıraktığında oturumu sonlandırın:
UserActivitySession? _currentSession = null;
_currentSession?.Dispose();
_currentSession = null;
Önerilen yöntemler
- Anlamlı etkinlik kimlikleri kullanın : Kimlik, görevi (örneğin, belge yolu veya proje adı) benzersiz olarak tanımlamalıdır.
-
Güncelleştirme etkinlikleri — Kullanıcı açıklamayı güncel tutmak için ilerleme kaydettiğinde arayın
SaveAsync(). - Etkinleştirme URI'si ayarlama — Etkinliğin uygulamayı doğru duruma yeniden başlatabilmesi için her zaman bir URI sağlayın.
- Bir kerede bir oturum oluşturma — Yeni bir oturum oluşturmadan önce önceki oturumu atın.
Ayrıntılı yönergeler için bkz. Kullanıcı etkinlikleri en iyi yöntemleri.
İlgili içerik
Windows developer