2016-07-27 15 views
0

Ich mache Push-Benachrichtigungen in Windows 10 universal mit C# und XAML. Alles funktioniert perfekt. Wenn ich eine Benachrichtigung und die App erhalten läuft verwende ich diese Funktion, etwas zu tun, wenn die Meldung kommt.Wie wird mit einer Benachrichtigung verfahren, wenn die App nicht aktiv ist?

private async void Channel_PushNotificationReceived(PushNotificationChannel sender, PushNotificationReceivedEventArgs e) 
{ 
    e.Cancel = true; 
    //do something in reaction to the notification 
} 

Aber wenn die App im Hintergrund ist erhalte ich einen Toast Benachrichtigung in Form eines Abzeichens. Wenn ich klicke, öffnet sich die App zur letzten Seite, auf der sie sich befand. Was ich jedoch tun möchte, ist, wenn das Abzeichen geklickt wird, ich in der Lage sein möchte, eine Funktion in meinem Code aufzurufen. Wie mache ich das?

Antwort

1

Wenn Ihre App nicht im Vordergrund ausgeführt wird, wird sie aktiviert und Sie können Ihren Code in den Ereignishandler OnActivated eingeben.

Je nach Art der Benachrichtigung verwenden Sie, gibt es kleine Unterschiede in der Handhabung, mögliche Typen sind:

  • Vordergrund Aktivierung von einem Toast Benachrichtigung mit Windows 10 adaptiver Vorlage
  • Hintergrund Aktivierung von ein Toastbenachrichtigung mit Windows 10 adaptive Vorlage
  • Legacy: Vordergrund Aktivierung von einem Toast-Benachrichtigung mit Legacy-Vorlage.

Dies ist der Code, den Sie mit den Windows-10 Toast Vorlagen für Vordergrund Aktivierung verwenden werden (die meisten verwendet eins):

protected override void OnActivated(IActivatedEventArgs args) 
{ 
    // TODO: Initialize root frame just like in OnLaunched 

    // Handle toast activation 
    if (args.Kind == ActivationKind.ToastNotification) 
    { 
     var toastArgs = args as ToastNotificationActivatedEventArgs; 

     // your code 
    } 

    // TODO: Handle other types of activation 
} 

du quickstart for sending and handling activations für eine Probe eines jeden Typs folgen . Der Quickstart verwendet auch ein NuGet-Paket, um Ihnen das Leben zu erleichtern.