Meine Kontakte – Benachrichtigungen

Wichtig

Meine Kontakte wird in Windows 11 und Windows 10 Versionen mit KB5034203 nicht mehr unterstützt.

Die Meine Kontakte-Benachrichtigungen bieten Nutzern eine neue Möglichkeit, mit den Menschen, die ihnen wichtig sind, durch schnelle, ausdrucksstarke Gesten in Kontakt zu treten. Dieser Artikel zeigt, wie Sie Meine Kontakte-Benachrichtigungen in Ihrer Anwendung entwerfen und implementieren. Vollständige Implementierungen finden Sie im Meine-Kontakte-Benachrichtigungs-Beispiel.

heart emoji notification

Anforderungen

Funktionsweise

Als Alternative zu den allgemeinen Popup-Benachrichtigungen können Sie jetzt Benachrichtigungen über die Funktion „Meine Kontakte“ senden, um den Nutzern ein persönlicheres Erlebnis zu bieten. Dies ist eine neue Art von Popup, der von einem Kontakt gesendet wird, der mit der Funktion „Meine Kontakte“ an die Taskleiste des Benutzers angeheftet wurde. Wenn die Benachrichtigung eingeht, wird das Kontaktbild des Absenders in der Taskleiste animiert und ein Ton ertönt, der signalisiert, dass die Benachrichtigung beginnt. Die in der Nutzlast angegebene Animation oder das Bild wird 5 Sekunden lang angezeigt (oder, wenn die Nutzlast eine Animation von weniger als 5 Sekunden Länge ist, wird sie in einer Schleife angezeigt, bis 5 Sekunden vergangen sind).

Unterstützte Bildtypen

  • GIF
  • Statisches Bild (JPEG, PNG)
  • Spritesheet (nur vertikal)

Hinweis

Ein Spritesheet ist eine Animation, die von einem statischen Bild (JPEG oder PNG) abgeleitet ist. Die einzelnen Frames sind vertikal angeordnet, so dass das erste Frame oben liegt (Sie können jedoch in der Popup-Nutzlast ein anderes Startframe angeben). Jedes Bild muss die gleiche Höhe haben, die das Programm in einer Schleife durchläuft, um eine animierte Sequenz zu erstellen (wie ein Daumenkino mit vertikal angeordneten Seiten). Ein Beispiel für ein Spritesheet ist unten abgebildet.

rainbow spritesheet

Parameter für die Benachrichtigung

Meine Kontakte-Benachrichtigungen verwenden das Popup-Benachrichtigungs-Framework, erfordern aber einen zusätzlichen Bindungsknoten in der Popup-Nutzlast. Diese zweite Bindung muss den folgenden Parameter enthalten:

experienceType="shoulderTap"

Dies bedeutet, dass der Popup als „Meine Kontakte“-Meldung behandelt werden soll.

Der Bildknoten innerhalb der Bindung sollte die folgenden Parameter enthalten:

  • src
    • URI des Assets. Dies kann entweder ein HTTP/HTTPS-Web-URI, ein msappx-URI oder ein Pfad zu einer lokalen Datei sein.
  • spritesheet-src
    • URI des Assets. Dies kann entweder ein HTTP/HTTPS-Web-URI, ein msappx-URI oder ein Pfad zu einer lokalen Datei sein. Nur für Spritesheet-Animationen erforderlich.
  • spritesheet-height
    • Die Rahmenhöhe (in Pixel). Nur für Spritesheet-Animationen erforderlich.
  • spritesheet-fps
    • Bilder pro Sekunde (FPS). Nur für Spritesheet-Animationen erforderlich. Es werden nur die Werte 1-120 unterstützt.
  • spritesheet-startingFrame
    • Die Bildnummer für den Beginn der Animation. Wird nur für Spritesheet-Animationen verwendet und standardmäßig auf 0 gesetzt, wenn keine Angaben gemacht werden.
  • alt
    • Textzeichenfolge, die für die Bildschirmleser-Erzählung verwendet wird.

Hinweis

Wenn Sie eine animierte Meldung erstellen, sollten Sie dennoch ein statisches Bild im Parameter „src“ angeben. Sie wird als Ausweichmöglichkeit verwendet, wenn die Animation nicht angezeigt wird.

Darüber hinaus muss der Popup-Knoten der obersten Ebene den Parameter hint-people enthalten, um den sendenden Kontakt anzugeben. Dieser Parameter kann einen der folgenden Werte annehmen:

  • E-Mail-Adresse
    • Beispiel: mailto:johndoe@mydomain.com
  • Telephone number
  • Remote-ID
    • Zum Beispiel remoteid:1234

Hinweis

Wenn Ihre Anwendung die ContactStore-APIs verwendet und die Eigenschaft StoredContact.RemoteId nutzt, um auf dem PC gespeicherte Kontakte mit entfernt gespeicherten Kontakten zu verknüpfen, ist es wichtig, dass der Wert für die RemoteId-Eigenschaft sowohl stabil als auch eindeutig ist. Das bedeutet, dass die Remote-ID durchgängig ein einzelnes Benutzerkonto identifizieren muss und ein eindeutiges Tag enthalten sollte, um sicherzustellen, dass sie nicht mit den Remote-IDs anderer Kontakte auf dem PC kollidiert, einschließlich Kontakten, die anderen Anwendungen gehören. Wenn die von Ihrer Anwendung verwendeten Remote-IDs nicht garantiert stabil und eindeutig sind, können Sie die Klasse RemoteIdHelper verwenden, um allen Ihren Remote-IDs ein eindeutiges Tag hinzuzufügen, bevor Sie sie dem System hinzufügen. Alternativ können Sie die RemoteId-Eigenschaft auch gar nicht verwenden und stattdessen eine benutzerdefinierte erweiterte Eigenschaft erstellen, in der Sie Remote-IDs für Ihre Kontakte speichern.

Zusätzlich zur zweiten Bindung und Payload müssen Sie eine weitere Payload in die erste Bindung für den Fallback-Popup aufnehmen. Die Benachrichtigung verwendet dies, wenn sie gezwungen ist, zu einem regulären Popup zurückzukehren (weitere Informationen finden Sie am Ende dieses Artikels).

Erstellen der Meldung

Sie können eine Meine Kontakte-Benachrichtigungsvorlage genauso erstellen wie eine Popup-Benachrichtigung.

Das folgende Beispiel zeigt, wie Sie eine Meine Kontakte-Benachrichtigung mit einem statischen Bild erstellen:

<toast hint-people="mailto:johndoe@mydomain.com">
    <visual lang="en-US">
        <binding template="ToastGeneric">
            <text hint-style="body">Toast fallback</text>
            <text>Add your fallback toast content here</text>
        </binding>
        <binding template="ToastGeneric" experienceType="shoulderTap">
            <image src="https://learn.microsoft.com/windows/uwp/contacts-and-calendar/images/shoulder-tap-static-payload.png"/>
        </binding>
    </visual>
</toast>

Wenn Sie die Meldung starten, sollte sie wie folgt aussehen:

static image notification

Hier ein Beispiel für die Erstellung einer Benachrichtigung mit einem animierten Spritesheet-Payload. Dieses Spritesheet hat eine Bildhöhe von 80 Pixeln, die wir mit 25 Bildern pro Sekunde animieren werden. Wir setzen das Startbild auf 15 und versehen es mit einem statischen Fallback-Bild im Parameter „src“. Das Fallback-Bild wird verwendet, wenn die Spritesheet-Animation nicht angezeigt werden kann.

<toast hint-people="mailto:johndoe@mydomain.com">
    <visual lang="en-US">
        <binding template="ToastGeneric">
            <text hint-style="body">Toast fallback</text>
            <text>Add your fallback toast content here</text>
        </binding>
        <binding template="ToastGeneric" experienceType="shoulderTap">
            <image src="https://learn.microsoft.com/windows/uwp/contacts-and-calendar/images/shoulder-tap-pizza-static.png"
                spritesheet-src="https://learn.microsoft.com/windows/uwp/contacts-and-calendar/images/shoulder-tap-pizza-spritesheet.png"
                spritesheet-height='80' spritesheet-fps='25' spritesheet-startingFrame='15'/>
        </binding>
    </visual>
</toast>

Wenn Sie die Meldung starten, sollte sie wie folgt aussehen:

spritesheet notification

Starten der Benachrichtigung

Um eine Meine Kontakte-Benachrichtigung zu starten, müssen wir die Popup-Vorlage in ein XmlDocument-Objekt umwandeln. Wenn Sie den Popup in einer XML-Datei (hier „content.xml“ genannt) definiert haben, können Sie ihn mit diesem Code starten:

string xmlText = File.ReadAllText("content.xml");
XmlDocument xmlContent = new XmlDocument();
xmlContent.LoadXml(xmlText);

Mit diesem Code können Sie dann den Popup erstellen und versenden:

ToastNotification notification = new ToastNotification(xmlContent);
ToastNotificationManager.CreateToastNotifier().Show(notification);

Zurückfallen auf Popup

Es gibt Fälle, in denen eine Benachrichtigung von Meine Kontakte stattdessen als normale Popup-Benachrichtigung angezeigt wird. Eine Meine Kontakte-Benachrichtigung wird unter den folgenden Bedingungen auf Popup zurückgesetzt:

  • Die Meldung wird nicht angezeigt
  • Meine Kontakte-Benachrichtigungen sind vom Empfänger nicht aktiviert
  • Der Kontakt des Absenders ist nicht an die Taskleiste des Empfängers angeheftet

Wenn eine My-People-Benachrichtigung auf Popup zurückfällt, wird die zweite My-People-spezifische Bindung ignoriert und nur die erste Bindung zur Anzeige des Popups verwendet. Aus diesem Grund ist es wichtig, in der ersten Popupbindung eine Fallback-Nutzlast bereitzustellen.

Siehe auch