2017-02-09 1 views
0

배경에서 활성화 할 수있는 버튼이 포함 된 축배 알림을했습니다. 이것은 내가 만든 토스트의 XML이고 screenshot입니다.UWP : 자바 스크립트에서 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]이 던졌습니다.

나는 봤 거든 거기에 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 번호를 사용할 수 있다는 것을 알고,하지만 난 가능하면 자바 스크립트를 사용하고 싶습니다.

배경에서 활성화 될 때 토스트 통지의 인수를 얻으려면 어떻게해야합니까?

답변

0

토스트의 주장에 액세스하는 방법을 찾았습니다. Windows.UI.WebUI.WebUIBackgroundTaskInstance.current.triggerDetails.argument에서 액세스 할 수 있습니다.

+0

좋습니다. 이 답변은 다른 커뮤니티 회원에게 도움이 될 것입니다. –

관련 문제