UWP:在javascript中使用ToastNotificationActionTriggerDetail

UWP:在javascript中使用ToastNotificationActionTriggerDetail,javascript,windows-runtime,uwp,win-universal-app,Javascript,Windows Runtime,Uwp,Win Universal App,我制作了一个toast通知,其中包含一个可以在后台激活的按钮。这是我制作的土司和 我的目标是在toast中获取触发操作的字符串(在本例中,“runtest”是要获取的字符串)。看起来我需要使用,但是当我调用backgroundTask.js时,它抛出了一个错误:type是不可构造的。此外,我还尝试使用Windows.UI.WebUI.WebUIToastNotificationActivatedEventArgs,但这也引发了一个错误[object] 我在谷歌上搜索过,有一个例子是如何在C#而不

我制作了一个toast通知,其中包含一个可以在后台激活的按钮。这是我制作的土司和

我的目标是在toast中获取触发操作的字符串(在本例中,“runtest”是要获取的字符串)。看起来我需要使用,但是当我调用backgroundTask.js时,它抛出了一个错误:type是不可构造的。此外,我还尝试使用Windows.UI.WebUI.WebUIToastNotificationActivatedEventArgs,但这也引发了一个错误[object]

我在谷歌上搜索过,有一个例子是如何在C#而不是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
        }
    }
}
我知道我可以用backgroundTask.cs替换backgroundTask.js,并使用C#编写后台任务,但如果可能的话,我想使用javascript


在后台激活时,如何获取toast通知的参数?

我找到了如何访问toast的参数。可以在
Windows.UI.WebUI.WebUI.backgroundtaskInstance.current.triggerDetails.argument

访问它,这太好了。这个答案将对其他社区成员有所帮助。
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();
});
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
        }
    }
}