应用未 运行 正确地从 ToastNotification 操作
App doesn't run correctly from ToastNotification action
我正在尝试制作一个非常简单的演示来展示如何在 UWP 中使用后台任务和 Toast 通知。我有一个简单的任务,它是在网络连接更改时触发的,他的工作是显示一个简单的通知。它当然在 OS 中注册,在清单中选择并且此任务运行良好。
我已经创建了一个程序包并在我的笔记本电脑上安装了该应用程序以尝试 运行 即使在该应用程序未启动的那一刻。任务也有效。
唯一的问题是,当我在通知中单击 "Run app" 按钮时,我想在前台启动应用程序 运行ning。它启动应用程序,但我唯一能看到的是我的应用程序的启动画面,没有其他任何事情发生。我看到了 MSDN 这个通知的教程,我的 XML 几乎是一样的。
我的XML通知内容:
<toast launch="app-defined-string">
<visual>
<binding template="ToastGeneric">
<text>Test notification</text>
<text>This is a simple toast notification</text>
<image placement="AppLogoOverride" src="../Assets/icon.png"/>
</binding>
</visual>
<actions>
<action activationType="foreground" content="Run App" arguments="check" />
</actions>
<audio src="ms-winsoundevent:Notification.SMS" />
</toast>
更新
App.xaml.cs中唯一修改的部分:
protected override void OnActivated(IActivatedEventArgs args)
{
if (args.Kind == ActivationKind.ToastNotification)
{
var toastArgs = (ToastNotificationActivatedEventArgs)args;
ToastArg = toastArgs.Argument;
}
}
您需要从 OnActivated 调用应用程序的初始化(OnLaunch 方法中的内容)。请记得在初始化时检查您的应用程序是否 运行。
我正在尝试制作一个非常简单的演示来展示如何在 UWP 中使用后台任务和 Toast 通知。我有一个简单的任务,它是在网络连接更改时触发的,他的工作是显示一个简单的通知。它当然在 OS 中注册,在清单中选择并且此任务运行良好。
我已经创建了一个程序包并在我的笔记本电脑上安装了该应用程序以尝试 运行 即使在该应用程序未启动的那一刻。任务也有效。
唯一的问题是,当我在通知中单击 "Run app" 按钮时,我想在前台启动应用程序 运行ning。它启动应用程序,但我唯一能看到的是我的应用程序的启动画面,没有其他任何事情发生。我看到了 MSDN 这个通知的教程,我的 XML 几乎是一样的。
我的XML通知内容:
<toast launch="app-defined-string">
<visual>
<binding template="ToastGeneric">
<text>Test notification</text>
<text>This is a simple toast notification</text>
<image placement="AppLogoOverride" src="../Assets/icon.png"/>
</binding>
</visual>
<actions>
<action activationType="foreground" content="Run App" arguments="check" />
</actions>
<audio src="ms-winsoundevent:Notification.SMS" />
</toast>
更新
App.xaml.cs中唯一修改的部分:
protected override void OnActivated(IActivatedEventArgs args)
{
if (args.Kind == ActivationKind.ToastNotification)
{
var toastArgs = (ToastNotificationActivatedEventArgs)args;
ToastArg = toastArgs.Argument;
}
}
您需要从 OnActivated 调用应用程序的初始化(OnLaunch 方法中的内容)。请记得在初始化时检查您的应用程序是否 运行。