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