J'ai fait une notification toast qui contient un bouton qui peut être activé en arrière-plan. C'est le XML du toast que j'ai fait et le screenshot.UWP: Utilisation de ToastNotificationActionTriggerDetail dans javascript
<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>
tâche
Je fond également enregistré pour exécuter du code lorsque le bouton « Exécuter » cliqué comme ceci:
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();
});
Mon but est d'obtenir la chaîne d'action déclenchée dans le pain grillé (dans ce cas , "runtest" est celui à obtenir). Il semble que j'ai besoin d'utiliser Windows.UI.Notifications.ToastNotificationActionTriggerDetail, mais quand j'ai appelé backgroundTask.js, il a jeté une erreur: le type n'est pas constructible. En outre, j'ai essayé d'utiliser Windows.UI.WebUI.WebUIToastNotificationActivatedEventArgs, mais cela a également généré une erreur [objet objet].
J'ai cherché sur google et il y avait un exemple comment faire ceci en C#, pas 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
}
}
}
Je sais que je peux remplacer backgroundTask.js avec backgroundTask.cs et utiliser C# pour écrire tâche de fond, mais je veux utiliser javascript si possible.
Comment puis-je obtenir l'argument de la notification toast lorsqu'il est activé en arrière-plan?
C'est génial. Cette réponse sera utile aux autres membres de la communauté. –