处理在app前景和背景的多士通知消息 - windows10

时间:2018-02-08 11:03:38

标签: push-notification uwp windows-10 toast wns

我的应用使用WNS服务器从PHP接收吐司。现在,我想点击下面列出的吐司时执行一些操作。 当应用程序未处于活动状态时 - 用户应该重定向到应用程序上的页面" ShowPage"。 当应用程序处于活动状态时 - 吐司应显示两个按钮"显示"和"取消"。单击“显示”按钮应用程序应重定向到“#34; ShowPage"

我目前来自PHP的祝酒词是

 $toastMessage= '<?xml version="1.0" encoding="utf-8"?>'.
 '<toast launch="">'.
 '<visual baseUri="">'.
    '<binding template="ToastGeneric">'.
       '<text>'.$subtitle.'</text>'.
    '</binding>'.
'</visual>'.
'<actions />'.
'</toast>';

我在App.xaml.cs上调用了函数下面的函数

 private async void RegisterEngagementNotification()
    {
        StoreServicesEngagementManager engagementManager = StoreServicesEngagementManager.GetDefault();
        await engagementManager.RegisterNotificationChannelAsync();
    }

2 个答案:

答案 0 :(得分:2)

请参阅documentation for sending a local toast and handling activation。一切都适用于那里(除了你从你的服务器发送吐司,但是否则添加按钮和处理激活保持不变)。

答案 1 :(得分:0)

我看到您正在使用StoreServicesEngagementManager API,然后我知道您正在从Windows开发人员信息中心发送Toast通知。所以,如果你想要你的吐司包含两个按钮,你需要添加如下的动作:

enter image description here

enter image description here

然后,在你的&#34; App.xaml.cs&#34;文件,您需要添加一些代码来处理OnActivated中的此选项。

protected override void OnActivated(IActivatedEventArgs args)
{
    Frame rootFrame = Window.Current.Content as Frame;
    if (rootFrame == null)
    {
        rootFrame = new Frame();
    }
    base.OnActivated(args);
    var toastActivationArgs = args as ToastNotificationActivatedEventArgs;
    if (toastActivationArgs.Argument =="ShowPage")
    {
        rootFrame.Navigate(typeof(ShowPage));
    }
}