如何在按钮单击时关闭 uwp 中的祝酒词

how to dismiss a toast in uwp on button click

我的 uwp 应用收到来自 php 服务器的 Toast 通知。它有两个操作按钮 "View" 和 "Dismiss"。当应用程序当前处于激活状态时,这些按钮可以正常工作。 (单击查看按钮重定向到新页面,单击关闭按钮将不会执行任何操作。)。但是当应用程序处于关闭状态时 - 当用户点击通知的关闭按钮时,应用程序的启动图标就会出现。我怎样才能阻止这个?我想在用户点击关闭按钮时关闭通知。

 $toastMessage= '<toast launch="app-defined-string">'.
 '<visual>'.
'<binding template="ToastGeneric">'.
  '<text>'.$title.'</text>'.
  '<text>'.$subtitle.'</text>'.
  '</binding>'.
 '</visual>'.
'<audio src="ms-winsoundevent:Notification.SMS"  />'.
'<actions>'.
'<action activationType="foreground" content="View"  arguments="viewdetails"/>'.
 '<action content="Dismiss" arguments="later"/>'.
 '</actions>'.  
  '</toast>';

protected override void OnActivated(IActivatedEventArgs args)
    {
       if (args.Kind == ActivationKind.ToastNotification)
        {
            var toastArgs = args as ToastNotificationActivatedEventArgs;
            var arguments = toastArgs.Argument;

            if (arguments == "viewdetails" || arguments== "app-defined-string")
            {
                Frame rootFrame = Window.Current.Content as Frame;
                if (rootFrame == null)
                {
                    rootFrame = new Frame();
                    Window.Current.Content = rootFrame;
                }
                rootFrame.Navigate(typeof(PushNotificationPage));
                Window.Current.Activate();
            }
        }
    }

toast 内容文档描述了如何在 snooze/dismiss 部分添加关闭按钮:https://docs.microsoft.com/en-us/windows/uwp/design/shell/tiles-and-notifications/adaptive-interactive-toasts#snoozedismiss

<action activationType="system" arguments="dismiss" content=""/>

基本上,将 activationType 设置为 system 并将参数设置为 dismiss。将内容设置为空字符串,将自动使用本地化的关闭文本。