Bagikan melalui


API Orang Lintas Perangkat

Windows adalah platform ideal bagi aplikasi pihak ketiga untuk mengintegrasikan kontak orang teratas mereka. Integrasi ini memungkinkan pengguna berinteraksi dengan persona untuk berbagai pengalaman orang. Windows sekarang menyediakan WinUI 3, UWP, dan aplikasi lain pihak ketiga dengan identitas paket dengan API untuk menyimpan semua kontak mereka.

Penting

Beberapa informasi berkaitan dengan produk prarilis yang mungkin dimodifikasi secara substansial sebelum dirilis secara komersial. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.

Catatan

Aplikasi dapat mencoba fitur ini segera setelah dirilis ke Program Windows Insider (Saluran Beta) di pengaturan Windows Update (lihat Mulai menggunakan Program Windows Insider untuk informasi selengkapnya).

Setelah aplikasi Anda menyimpan kontak mereka di Windows, pengguna akan dapat melihat saran kontak ini di panel Berbagi di Windows untuk berbagi dengan mulus dengan kontak teratas mereka. Lihat Cara berbagi file di File Explorer di Windows untuk informasi selengkapnya tentang panel Berbagi .

Membuat UserDataAccount untuk Kontrak Orang

Mulailah dengan membuat akun data pengguna. Aplikasi pihak ketiga diperlukan untuk membuat UserDataAccount dengan UserDisplayName sebagai "com.microsoft.peoplecontract".

UserDataAccountStore udas =
    await UserDataAccountManager.RequestStoreAsync(UserDataAccountStoreAccessType.AppAccountsReadWrite);
UserDataAccount uda = await udas.CreateAccountAsync("com.microsoft.peoplecontract");

Selanjutnya, tambahkan "com.microsoft.windows.system" ke daftar ExplictReadAccessPackageFamilyNames untuk akun tersebut. Ini akan memberikan akses terbatas dari kontak pihak ketiga ke pengalaman Windows.

uda.ExplictReadAccessPackageFamilyNames.Add("com.microsoft.windows.system");
await uda.SaveAsync();

Menyimpan kontak

Langkah pertama dalam menyimpan kontak adalah membuat daftar kontak. Untuk melakukan ini, aplikasi pihak ketiga harus membuat daftar kontak baru untuk UserDataAccount di ContactStore Windows. Aplikasi dapat memilih untuk menyimpan jenis akses default OtherAppReadAccess untuk daftar kontak, sambil mengaturnya None akan mencegah aplikasi lain memiliki akses ke kontak ini. Lihat enum ContactListOtherAppReadAccess untuk daftar lengkap jenis akses yang tersedia.

ContactStore store = await ContactManager.RequestStoreAsync(ContactStoreAccessType.AppContactsReadWrite);
this.contactList = await store.CreateContactListAsync(contactListsName, uda.Id);
contactList.OtherAppReadAccess = ContactListOtherAppReadAccess.None;
await contactList.SaveAsync();

Saat menyimpan kontak, aplikasi pihak ketiga harus menyertakan semua informasi relevan yang diperlukan agar pengalaman Windows mendukung Kontak.

Bidang berikut diperlukan saat menyimpan kontak:

  • FirstName
  • RemoteId
  • DisplayPicture

Bidang berikut bersifat opsional:

  • LastName
  • Phones
  • Emails

Cuplikan kode ini menunjukkan cara menyimpan kontak:

foreach (var appContact in AppContacts)
{
  var cont = new Contact
  {
    FirstName = appContact.FirstName,
    LastName = appContact.LastName,
    RemoteId = appContact.Id,
    SourceDisplayPicture = RandomAccessStreamReference.CreateFromUri(new Uri(appContact.ProfilePicPath)),
    Phones = { new ContactPhone { Number = appContact.Phone } }
  };

  await this.contactList.SaveContactAsync(cont);
}

Catatan

DisplayName untuk Kontak dibangun menggunakan FirstName dan LastName. Jika nama belakang tidak disediakan, DisplayName akan identik dengan string yang disediakan untuk nama depan.

Menyimpan peringkat untuk kontak

Anda dapat membuat daftar anotasi untuk UserDataAccount menyimpan peringkat untuk kontak Anda. Aplikasi dapat menyimpan peringkat untuk kontak teratas mereka dengan menambahkan anotasi ke kontak. Anotasi ini disimpan sebagai bagian dari daftar anotasi di penyimpanan kontak.

ContactAnnotationStore annotationStore = await
    ContactManager.RequestAnnotationStoreAsync(ContactAnnotationStoreAccessType.AppAnnotationsReadWrite);
this.contactAnnotationList = await annotationStore.CreateAnnotationListAsync(uda.Id);

Anda dapat menyimpan peringkat untuk kontak teratas Anda dengan menggunakan anotasi pada kontak. Peringkat disimpan sebagai bagian dari ProviderProperties pada anotasi kontak. Bersama dengan peringkat, aplikasi harus mengatur SupportedOperations pada anotasi kontak sebagai Share.

foreach (var appContact in topAppContacts)
{
  Contact contact = await list.GetContactFromRemoteIdAsync(topAppContact.RemoteID);
  var annotation = new ContactAnnotation
  {
    ContactId = contact.Id,
    SupportedOperations = ContactAnnotationOperations.Share
  };
  annotation.ProviderProperties.Add("Rank", rank);
  await annotationsLst.TrySaveAnnotationAsync(annotation);
}

Memperbarui peringkat kontak

Ini atas kebijakan aplikasi kapan harus memperbarui peringkat kontak yang disimpan di Windows. Windows merekomendasikan agar daftar peringkat diperbarui secara teratur untuk memberikan pengalaman pengguna terbaik. Setiap kali Anda perlu memperbarui daftar peringkat, Anda harus mengikuti beberapa langkah.

  1. Hapus ContactAnnotationList.

    Setelah aplikasi memiliki daftar kontak teratas yang diperbarui, daftar anotasi dapat dihapus dan daftar anotasi baru dengan anotasi yang diperbarui untuk kontak teratas mereka dapat dibuat.

    await this.contactAnnotationList.DeleteAsync();
    
  2. Membuat baru ContactAnnotationList. Ikuti langkah-langkah di bagian Menyimpan peringkat untuk kontak untuk membuat daftar anotasi baru dan menyimpan peringkat untuk kontak teratas Anda.

Lihat juga