从Windows Phone 8.1操作中心选择通知

时间:2015-04-29 23:41:11

标签: visual-studio windows-phone-8.1

我正在向这样的设备发送Toast Notifications。

private void SendNotification(string text, string activatedargs = null) {
    XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText01);

    XmlNodeList elements = toastXml.GetElementsByTagName("text");
    foreach(IXmlNode node in elements) {
        node.InnerText = text;
    }

    if(!string.IsNullOrEmpty(activatedargs)) {
        ((XmlElement)toastXml.SelectSingleNode("/toast")).SetAttribute("launch", activatedargs);
    }

    ToastNotification notification = new ToastNotification(toastXml);
    notification.Activated += notification_Activated;
    ToastNotificationManager.CreateToastNotifier().Show(notification);
}

如您所见,我正在为Activated事件添加回调函数。这个效果很好,而toast通知弹出窗口出现在屏幕顶部。但是,当通知消失并且通知仅在操作中心中可见时,在选择通知时永远不会调用回调。该应用程序可以正常打开,但不会打开包含基于所选通知的信息的视图。

所以,如果我发送了三个Toast通知," A"," B"和" C"。这三个通知列在我的应用名称下面的操作中心中。当点击通知" B"具体来说,如何将应用程序打开到专门与" B"?

相关的视图

1 个答案:

答案 0 :(得分:0)

您应该将activatedargs设置为包含标识" A"," B"或" C"。

activatedargs = "B"

然后在App.xaml.cs中,您可以获得标识并基于此,导航到正确的视图

protected override void OnLaunched(LaunchActivatedEventArgs args)
{
    string launchString = launchEventArgs.Arguments;
    if (!String.IsNullOrEmpty(launchString))
    {
        // Get the identification and navigate to correct view
        switch(launchString)
        {
            case "B": NavigateToViewModel<BViewModel>();
        }
    }
}