-1

Ich versuche, eine sehr einfache Demo zu erstellen, um zu zeigen, wie man mit Hintergrundaufgaben und Toast-Benachrichtigungen in UWP arbeitet. Ich habe eine einfache Aufgabe, die beim Wechsel der Netzwerkverbindung ausgelöst wird und dessen Aufgabe es ist, eine einfache Benachrichtigung anzuzeigen. Es ist natürlich in OS registriert, in Manifest ausgewählt und diese Aufgabe funktioniert gut.App läuft nicht korrekt von ToastNotification Aktion

Ich habe ein Paket erstellt und die App in meinem Laptop installiert, um zu versuchen, ob es auch in dem Moment ausgeführt wird, wenn die App nicht gestartet wird. Aufgabe funktioniert auch.

Das einzige Problem ist, dass, wenn ich auf "Run app" -Button in der Benachrichtigung, möchte ich starten App im Vordergrund laufen. Es startet App, aber das einzige, was ich sehen kann, ist Splash-Screen meiner App und nichts anderes passiert ist. Ich sah MSDN Tutorial zu dieser Benachrichtigung und mein XML ist fast das gleiche.

Meine XML-Nachricht Inhalt:

<toast launch="app-defined-string"> 
    <visual> 
    <binding template="ToastGeneric"> 
     <text>Test notification</text> 
     <text>This is a simple toast notification</text> 
     <image placement="AppLogoOverride" src="../Assets/icon.png"/> 
    </binding> 
    </visual> 
    <actions> 
    <action activationType="foreground" content="Run App" arguments="check" /> 
    </actions> 
    <audio src="ms-winsoundevent:Notification.SMS" /> 
</toast> 

UPDATE

Der einzige modifizierte Teil in App.xaml.cs:

protected override void OnActivated(IActivatedEventArgs args) 
{ 
    if (args.Kind == ActivationKind.ToastNotification) 
    { 
    var toastArgs = (ToastNotificationActivatedEventArgs)args; 
    ToastArg = toastArgs.Argument; 
    } 
} 
+0

Können Sie Ihre App.xaml.cs veröffentlichen? – thang2410199

+0

Natürlich habe ich den einzigen modifizierten Teil von App.xaml.cs hinzugefügt, der Rest ist nur Standard "Start" Anwendungscode. Aber ich habe es ohne diesen Code versucht und das Ergebnis war dasselbe. –

Antwort

2

Sie benötigen die Initialisierung der App aufrufen (Dinge in OnLaunch-Methode) von OnActivated. Denken Sie daran, bei der Initialisierung zu überprüfen, ob Ihre App läuft oder nicht.

+0

Danke für den tollen Hinweis, ich habe wirklich keine Ahnung, dass OnLaunched Methode nicht feuert, wenn Sie App von Benachrichtigung läuten. Die wichtigsten fehlenden Informationen waren wahrscheinlich: 'rootFrame.Navigate (typeof (MainPage), arg);' –