我做了一个敬酒通知,其中包含一个可在后台激活的按钮。这是我做的烤面包和screenshot的XML。UWP:在javascript中使用ToastNotificationActionTriggerDetail
<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>
而且我也注册后台任务运行的代码时,“运行”按钮,点击是这样的:
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();
});
我的目标是让触发的操作在敬酒字符串(在这种情况下, ,“runtest”是获得的)。好像我需要使用Windows.UI.Notifications.ToastNotificationActionTriggerDetail,但是当我在backgroundTask.js中调用它时,它会抛出一个错误:类型不可构造。另外,我已经尝试过使用Windows.UI.WebUI.WebUIToastNotificationActivatedEventArgs,但是也抛出了一个错误[object Object]。
我已经使用Google搜索,并且有一个示例如何在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。
如何在后台激活时获得吐司通知的参数?
太好了。这个答案对其他社区成员会有帮助。 –