Freigeben über


Universelles Schließen

Das universelle Schließen, das vom Info-Center in der Cloud unterstützt wird, bedeutet, dass beim Schließen einer Benachrichtigung von einem Gerät dieselbe Benachrichtigung auf Ihren anderen Geräten ebenfalls geschlossen wird.

Wichtig

Erfordert Anniversary Update: Sie müssen sdk 14393 als Ziel verwenden und Build 14393 oder höher ausführen, um das universelle Schließen zu verwenden.

Das allgemeine Beispiel für dieses Szenario ist Kalendererinnerungen... Sie haben eine Kalender-App auf beiden Ihren Geräten... Sie erhalten eine Erinnerung auf Ihrem Smartphone und Desktop... Sie klicken auf Ihrem Desktop auf 'Schließen'... Dank Universal Dismiss wird auch die Erinnerung auf Ihrem Smartphone geschlossen! Das Aktivieren des universellen Schließens erfordert nur eine Codezeile!

Diagramm des universellen Schließens

In diesem Szenario ist die Wichtigste Tatsache, dass dieselbe App auf mehreren Geräten installiert ist, was bedeutet, dass jedes Gerät bereits Benachrichtigungen empfängt. Eine Kalender-App ist das iconic-Beispiel, da Sie in der Regel dieselbe Kalender-App sowohl auf Ihrem Windows-PC als auch auf Ihrem Smartphone installiert haben, und jede Instanz der App sendet Ihnen bereits Erinnerungen auf jedem Gerät. Durch Hinzufügen der Unterstützung für das universelle Schließen können diese Instanzen derselben Erinnerungen geräteübergreifend verknüpft werden.

Aktivieren des universellen Schließens

Als Entwickler ist die Aktivierung des universellen Schließens äußerst einfach. Sie müssen lediglich eine ID angeben, mit der wir jede Benachrichtigung geräteübergreifend verknüpfen können. Wenn der Benutzer eine Benachrichtigung von einem Gerät schließt, wird die entsprechende verknüpfte Benachrichtigung vom anderen Gerät geschlossen.

RemoteId-Diagramm für universelles Schließen

RemoteId: Ein Bezeichner, der eine Benachrichtigung auf allen Geräten eindeutig identifiziert.

es wird nur eine Codezeile benötigt, um RemoteId hinzuzufügen, wodurch die Unterstützung für das universelle Schließen aktiviert wird. Wie Sie Ihre RemoteId generieren, liegt jedoch bei Ihnen– Sie müssen jedoch sicherstellen, dass sie Ihre Benachrichtigung auf allen Geräten eindeutig identifiziert und dass derselbe Bezeichner aus verschiedenen Instanzen Ihrer App generiert werden kann, die auf verschiedenen Geräten ausgeführt werden.

Beispielsweise generiert ich in meiner Hausaufgabenplaner-App meine RemoteId, indem ich sage, dass sie vom Typ "Erinnerung" ist, und dann gebe ich die Onlinekonto-ID und den Onlinebezeichner des Hausaufgabenelements ein. Ich kann unabhängig davon, welches Gerät die Benachrichtigung sendet, konsistent dieselbe RemoteId generieren, da diese Online-IDs auf allen Geräten freigegeben werden.

var toast = new ScheduledToastNotification(content.GetXml(), startTime);
 
// If the RemoteId property is present
if (ApiInformation.IsPropertyPresent(typeof(ScheduledToastNotification).FullName, nameof(ScheduledToastNotification.RemoteId)))
{
    // Assign the RemoteId to add support for Universal Dismiss
    toast.RemoteId = $"reminder_{account.AccountId}_{homework.Identifier}"
}
  
ToastNotificationManager.CreateToastNotifier().AddToSchedule(toast);

Der folgende Code wird sowohl auf meinem Smartphone als auch auf meiner Desktop-App ausgeführt, was bedeutet, dass die Benachrichtigung auf beiden Geräten dieselbe RemoteId hat.

Das ist alles, was Sie tun müssen! Wenn der Benutzer eine Benachrichtigung schließt (oder klickt) wird überprüft, ob er über eine Remote-ID verfügt, und wenn ja, wird das Schließen dieser Remote-ID auf allen Geräten des Benutzers ausgeblendet.

Bekanntes Problem: Durch das Abrufen der RemoteId über die ToastNotificationHistory.GetHistory() API wird immer eine leere Zeichenfolge anstelle der von Ihnen angegebenen Remote-ID zurückgegeben. Machen Sie sich keine Sorgen, alles ist funktionsfähig – es wird nur der beschädigte Wert abgerufen.

Hinweis

Wenn der Benutzer oder Unternehmen die Benachrichtigungsspiegelung für Ihre App deaktiviert (oder die Benachrichtigungsspiegelung vollständig deaktiviert), funktioniert das universelle Schließen nicht, da ihre Benachrichtigungen nicht in der Cloud vorhanden sind.

Unterstützte Geräte

Seit dem Anniversary Update wird das universelle Schließen unter Windows Mobile und Windows Desktop unterstützt. Das universelle Schließen funktioniert in beide Richtungen zwischen PC-PC, PC-Telefon und Telefon-Telefon.