Я сделал уведомление тоста, которое содержит кнопку, которая может быть активирована в фоновом режиме. Это XML тоста, что я сделал, и screenshot.UWP: Использование ToastNotificationActionTriggerDetail в 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>
И я также зарегистрировал фоновую задачу для запуска кода при нажатии кнопки «Выполнить» щелкнул так:
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].
У меня googled, и был пример, как это сделать на 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.js с backgroundTask.cs и использовать C#, чтобы написать фоновую задачу, но я хочу использовать JavaScript, если это возможно.
Как я могу получить аргумент уведомления тоста при активации в фоновом режиме?
Это замечательно. Этот ответ будет полезен другим членам сообщества. –