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.
Başlamadan önce kişilerinizi Windows'a ekleyin.
Bir kullanıcı ile uygulamanızdaki bir kişi arasındaki anlamlı etkileşimleri temsil etmek için iletişim etkinliklerini kaydedebilirsiniz. Kişi etkinlikleri, kullanıcıların planlı aşamalarda Kişiler Pencere Öğeleri, Paylaşım Sayfası ve Windows Arama Kutusu gibi kişilerle ilgili deneyimlerde kişilerle nasıl etkileşimde bulunduğunu Windows’un anlamasına yardımcı olan basit etkileşim sinyalleri görevi görür.
Note
ContactAnnotationOperations referansı şu anda Activity değeri için bir Windows veya SDK sürümünü listelememektedir ve bu makalede, bugün hangi deneyimlerin kişi etkinliklerini kullandığı belirtilmez. Başvuruda sürüm geçmişi, Share (Windows 10 sürüm 1703, SDK 15063) değerini en son belgelenen değer olarak listelenir. Eski SDK sürümlerini hedefleyen bir uygulamada Activity öğesine bağımlı olmadan önce güncelleştirmeler için API başvurusunu denetleyin.
Her etkinlik üç önemli bilgi parçasını kaydeder:
- Kim - etkileşime dahil olan kişi
- Ne — gerçekleşen etkileşimin türü
- Ne zaman — etkileşimin gerçekleştiği zaman
Bir kişi etkinliğini kaydetmek için, bir uygulamanın kişiyle ilişkilendirilmiş bir ContactAnnotation oluşturması ve ContactAnnotationOperations.Activity değerini SupportedOperations olarak ayarlaması gerekir. Windows, bu işlem türüne sahip ek açıklamaları kişi ile ilişkili etkileşim sinyalleri olarak yorumlar.
Her etkinlik tek bir etkileşim olayını temsil eder ve ayrı olarak kaydedilmelidir. Birden çok kişi etkinliği gönderirken, etkileşim kayıtlarında yineleme yapın ve her olay için TrySaveAnnotationAsync çağrısı yapın. Bir döngü toplu iş API'sini sağlamaz veya eşitleme ek yükünü azaltmaz.
Kişi etkinliği veri yükü
Kişi etkinliğini kaydetmek için, etkileşimi açıklayan bir JSON dizesi olarak öğesini ProviderProperties["ActivityPayload"] üzerinde ayarlayın.
Yük aşağıdaki özellikleri içermelidir:
| Property | Description |
|---|---|
ActivityType |
Etkileşim türünü tanımlar. |
ActivityTimestampUnix |
Etkileşimin gerçekleştiği zaman, saniye cinsinden UTC Unix zamanı olarak ifade edilir. |
Anahtarı ActivityPayload ve payload özellik adlarını ActivityType ve ActivityTimestampUnix tam olarak gösterildiği gibi kullanın. Bu adlar, etkinliği tanımlamak için dize tabanlı sözleşmeyi oluşturur.
Desteklenen iletişim etkinliği türleri
ActivityType alanı, kullanıcı ve kişi arasında gerçekleşen etkileşimi tanımlar. Windows şu anda aşağıdaki etkinlik türlerini destekler.
| AktiviteTürü | Description |
|---|---|
message |
Kişiyle ileti gönderme veya alma. |
call |
Sesli veya görüntülü arama başlatma veya yanıtlama. |
email |
E-posta gönderme veya alma. |
meeting |
İlgili kişiyi içeren bir toplantıya katılma veya toplantı zamanlamak. |
share |
Kişi ile içerik paylaşma. |
social |
Sosyal özellikler aracılığıyla kişi ile etkileşim kurma. |
profileInteraction |
Kişinin profilini açma veya bu profille etkileşim kurma. |
Uygulamalar, uygulama içinde gerçekleşen kullanıcı etkileşimini en iyi temsil eden etkinlik türünü seçmelidir.
Kişi etkinliği kaydetme örneği
Aşağıdaki örnekte, bir mesajlaşma etkileşimini kişi etkinliği olarak kaydetme gösterilmektedir.
long nowUnix = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
var payload = new
{
ActivityType = "message",
ActivityTimestampUnix = nowUnix
};
var annotation = new ContactAnnotation
{
ContactId = contact.Id,
RemoteId = contact.RemoteId,
SupportedOperations = ContactAnnotationOperations.Activity
};
annotation.ProviderProperties["ActivityPayload"] =
JsonSerializer.Serialize(payload);
bool saved = await this.contactAnnotationList.TrySaveAnnotationAsync(annotation);
if (!saved)
{
// The annotation wasn't saved, so Windows didn't receive this activity.
// Log the failure or retry later. Don't treat the interaction as recorded.
System.Diagnostics.Debug.WriteLine(
$"Failed to save contact activity for contact {contact.RemoteId}.");
}
TrySaveAnnotationAsync, ek açıklamayı kaydedemezse false döndürür, bu nedenle etkinliğin kaydedildiğini varsaymadan önce sonucu denetleyin. Bir true sonuç, ek açıklamanın kaydedildiği anlamına gelir. Windows'un daha sonra etkinliği nasıl işlediğini göstermez.
ilgili kişi etkinliklerine erişim modeli
Kişi etkinlikleri, uygulamanızın perspektifinden yalnızca yazılabilirdir. Uygulamanız etkinlik kayıtlarını gönderebilir, ancak Windows şu anda daha önce gönderilen etkinlik kayıtlarının alınmasını veya açıkça silinmesini desteklememektedir. Windows tarafından yönetilen yaşam döngüsü temizliği, sonraki bölümde açıklandığı gibi ayrı bir işlemdir.
Uygulamanızın etkileşim geçmişini koruması veya yönetmesi gerekiyorsa, bunu kendi depolama alanınızda veya arka uç hizmetinizde tutun.
Kişi etkinlikleri yaşam döngüsü
Kişi etkinlikleri, uygulama tarafından sağlanan RemoteId kullanılarak kişiler ile ilişkilendirilir.
Bir kişi kaldırılırsa veya ilişkili RemoteId silinirse, ilgili kişiyle bağlantılı kişi etkinlikleri otomatik olarak kaldırılır. Benzer şekilde, bir uygulama kaldırıldığında veya ilişkili UserDataAccount kaldırıldığında, Windows söz konusu uygulama tarafından kaydedilen kişileri ve kişi etkinliklerini otomatik olarak kaldırır.
İletişim etkinliklerinin işlenmesi ve saklanması
Temas etkinlikleri, etkileşim sinyalleri olarak Windows tarafından işlenir.
Saklama süresi, süre sonu (TTL), birleştirme ve kişi etkinliklerinin değerlendirilmesi Windows tarafından dahili olarak yönetilir. Uygulamalar, etkinliklerin ne kadar süreyle depolandığını veya gönderildikten sonra nasıl işlendiğini denetlemez.
İletişim etkinlikleri gerçek kullanıcı etkileşimlerini temsil etmelidir ve iletişim sıralamasını veya görünürlüğünü etkileme amacıyla oluşturulmamalıdır. Windows, iç platform mantığını kullanarak bu sinyallerin insanlarla ilgili deneyimlere nasıl katkıda bulunduğunu belirler.
İlgili içerik
Windows developer