在锁屏界面上显示UWP控件

4

我的工作内容

我收到了用户的需求,需要能够通过Windows锁屏来启动我的应用程序。在搜索网络后,发现从锁屏中挂接热键非常困难(如果不是不可能的话)。
然后我找到了这篇文章,其中使用了

 Microsoft.Toolkit.Uwp.Notifications.TileContent  

发送通知到锁屏界面。
我没有找到添加一些按钮或类似控件到TileContent的方法,所以我尝试了以下方法:

Microsoft.Toolkit.Uwp.Notifications.ToastContent

我成功添加了一个按钮,现在可以这样显示 ToastNotification

ToastContent content = new ToastContent()
    {
        Duration = ToastDuration.Long,
        Visual = new ToastVisual()
        {
            BindingGeneric = new ToastBindingGeneric()
            {
                Attribution = new ToastGenericAttributionText()
                {
                    Text = "Hello World"
                }
            }  
        },
        Actions = new ToastActionsCustom()
        {
            Buttons = {
                new ToastButton ("mycontent", "myargs")
            }
         }
    };
var notification = new ToastNotification(content.GetXml());
ToastNotificationManager.CreateToastNotifier().Show(notification);

采用这种方法,我遇到的问题是 ToastNotification 会在特定时间后消失。 ToastContent.Duration 属性无法设置为“连续显示”或类似的内容。

问题

  • 有没有一种方法可以不间断地显示 ToastNotification
  • 如果没有,是否有其他方式通过锁屏界面上的按钮(或其他控件)触发我的应用程序,就像 Spotify 小部件所做的那样。 (请参见链接帖子中的截屏)
2个回答

3

没有支持的方法来添加按钮到锁屏界面,只能添加文本。

Spotify的“小部件”实际上是播放界面,只对媒体应用程序有用。

您可以通过将它转换成提醒来使toast“连续”显示。这将使toast保持在屏幕上,直到用户将其关闭。

ToastContent content = new ToastContent()
{
    Scenario = ToastScenario.Reminder,
    Visual = new ToastVisual()

然而,在这种情况下使用toast通知可能是对toast通知的滥用。但在你的情境下可能有意义。

谢谢您的回答。这有助于在我点击通知正文(而不是任何按钮)时显示“ToastNotification”。当单击通知正文时,Windows 切换到登录屏幕,通知不再显示。 有没有办法防止这种行为发生? - HaaLeo
点击 Toast 可以激活您的应用程序(需要用户登录)。如果将 ToastContent 的 ActivationType 设置为 Background,则可以通过单击 Toast 来激活后台,然后您的后台任务可以在用户单击时弹出另一个 Toast。 - Andrew Leader

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接