Ich machte eine Toast-Benachrichtigung, die eine Schaltfläche enthält, die im Hintergrund aktiviert werden kann. Das ist das XML des Toasts was ich gemacht habe und das screenshot.UWP: ToastNotificationActionTriggerDetail in Javascript verwenden
<toast launch="reopen">
<visual>
<binding template="ToastGeneric">
<text>Test</text>
<text>An toast command test</text>
</binding>
</visual>
<actions>
<action content="Run" activationType="background" arguments="runtest"/>
</actions>
</toast>
Und ich auch Hintergrundaufgabe registriert Code ausgeführt werden, wenn das ‚Ausführen‘ Taste wie diese angeklickt:
var backgroundBox = Windows.ApplicationModel.Background;
backgroundBox.BackgroundExecutionManager.requestAccessAsync().then(function() {
var taskBuilder = backgroundBox.BackgroundTaskBuilder();
taskBuilder.taskEntryPoint = "js\\backgroundTask.js";
taskBuilder.name = "toastReportError";
taskBuilder.setTrigger(new Windows.ApplicationModel.Background.ToastNotificationActionTrigger());
return taskBuilder.register();
});
Mein Ziel ist es, die Kette von ausgelösten Aktion in dem Toast (in diesem Fall zu erhalten "RunTest" ist derjenige, der zu bekommen). Es scheint, als ob ich Windows.UI.Notifications.ToastNotificationActionTriggerDetail verwenden muss, aber als ich backgroundTask.js aufgerufen habe, wurde ein Fehler ausgegeben: Typ ist nicht erstellbar. Außerdem habe ich versucht, Windows.UI.WebUI.WebUIToastNotificationActivatedEventArgs zu verwenden, aber das warf auch einen Fehler [Object Object].
Ich habe gegooglet und es gab ein Beispiel, wie man das in C#, nicht Javascript.
public sealed class NotificationActionBackgroundTask : IBackgroundTask
{
public void Run(IBackgroundTaskInstance taskInstance)
{
var details = taskInstance.TriggerDetails as ToastNotificationActionTriggerDetail;
if (details != null)
{
string arguments = details.Argument;
var userInput = details.UserInput;
// Perform tasks
}
}
}
Ich weiß, dass ich backgroundTask.js mit backgroundTask.cs und verwenden C# ersetzen kann Hintergrundaufgabe zu schreiben, aber ich will Javascript verwenden, wenn möglich.
Wie kann ich das Argument der Toast-Benachrichtigung erhalten, wenn es im Hintergrund aktiviert wird?
Das ist großartig. Diese Antwort wird anderen Community-Mitgliedern hilfreich sein. –