UWP:在 javascript 中使用 ToastNotificationActionTriggerDetail
UWP: Using ToastNotificationActionTriggerDetail in javascript
我制作了一个 toast 通知,其中包含一个可以在后台激活的按钮。这是我做的吐司的XML和screenshot.
<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>
而且当 'Run' 按钮被点击时,我也将后台任务注册到 运行 代码:
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();
});
我的目标是获取 toast 中的触发操作字符串(在本例中,"runtest" 是要获取的字符串)。似乎我需要使用 Windows.UI.Notifications.ToastNotificationActionTriggerDetail,但是当我调用 backgroundTask.js 时,它抛出了一个错误:type is not constructible。另外,我试过使用 Windows.UI.WebUI.WebUIToastNotificationActivatedEventArgs,但这也引发了错误 [object 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.WebUIBackgroundTaskInstance.current.triggerDetails.argument
.
访问
我制作了一个 toast 通知,其中包含一个可以在后台激活的按钮。这是我做的吐司的XML和screenshot.
<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>
而且当 'Run' 按钮被点击时,我也将后台任务注册到 运行 代码:
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();
});
我的目标是获取 toast 中的触发操作字符串(在本例中,"runtest" 是要获取的字符串)。似乎我需要使用 Windows.UI.Notifications.ToastNotificationActionTriggerDetail,但是当我调用 backgroundTask.js 时,它抛出了一个错误:type is not constructible。另外,我试过使用 Windows.UI.WebUI.WebUIToastNotificationActivatedEventArgs,但这也引发了错误 [object 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.WebUIBackgroundTaskInstance.current.triggerDetails.argument
.