Das Konzept von Share by Contract in Windows 8 findet sich auch in der Verwaltung von Kontakten wieder. Es macht einfach Sinn einen Adressverwaltung zu haben und nicht zehn in Facebook, Outlook, Twitter,Messenger und co.
Eine WinRT METRO styled App, kann als Adressquelle dienen (also doch mehr als eine) oder diese konsumieren. Wer in den Manifest Einstellungen den Contact Picker auswählt, will ein Adressanbieter werden.
Das ist nicht Thema in diesem Blog Eintrag.
Windows 8 bietet ähnlich einem FilePicker einen ContactPicker, der es erlaubt einen oder mehrere Kontakte auszuwählen. Alles was als Kontakt Quelle per Declaration spezifiziert ist, taucht dann auf. Falls nur eine METRO App mit Contact Contract auf dem Systeminstalliert ist,wird dieser Dialog übersprungen und Benutzer befindet sich gleich in der Contacts APP.
Es gibt aktuell kein SDK Beispiel für C# oder VB.NET nur für JavaScript. Der nötige Code ist aber einfach, Man kann den Benutzer einen oder viele Kontakte auswählen lassen,
Dim picker As New ContactPicker
. Dim rawContacts As IEnumerable = Await picker.PickMultipleContactsAsync()
.. picker.PickSingleContactAsync()
Auf einige Eigenschaften wie Name kann man direkt zugreifen.
Private Async Sub Button_Click_1(sender As Object, e As RoutedEventArgs)
Dim picker As New ContactPicker
Dim rawContacts As IEnumerable = Await picker.PickMultipleContactsAsync()
Dim contacts = rawContacts.Cast(Of ContactInformation)()
For Each contact In contacts
... contact.Name
Next
End Sub
Andere Eigenschaften wie Locations, PhoneNumbers oder eMails sind als Listen angelegt. er Index kann dann auf das eigentliche Objekt contact.PhoneNumbers(0).Value zugegriffen werden.
Im Kontakte Dialog werden diese n Telefonnummern verwaltet.
Im Code kann auf die Eigenschaft Name und Value zugegriffen werden.
Wer noch mehr braucht, weil er z.B. spezielle Kundeninformationen für eine Geschäftsanwendung wie Umsatz oder Rabatt hinterlegen möchte, kann dafür die Custom Fields nutzen.