在接收推送通知时从App.xaml.cs导航

时间:2015-07-16 09:49:11

标签: c# windows-phone-8.1

我希望我的应用能够在收到推送吐司通知时导航到某个页面。我的代码如下: -

ParsePush.ToastNotificationReceived += OnPushNotification;

这是为了处理推送事件

private async void OnPushNotification(object sender, Windows.Networking.PushNotifications.PushNotificationReceivedEventArgs e)
    {
        var AdFrame = Window.Current.Content as Frame;
            var localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
            if (localSettings.Values.ContainsKey("Suspended"))
            {
                String value = localSettings.Values["Suspended"].ToString();
                if (value != null)
                {
                    if (value == "false")
                    {
                        AdFrame.Navigate(typeof(Ad));
                    }
                }
            }
        }

我在var AdFrame = Window.Current.Content as Frame;

处收到空参考错误

我已在App.xaml.cs中添加了此代码。我只想从当前页面导航到广告页面,无论页面是否有效。我对Windows很新,任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

您需要显示一个Toast通知:

XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(
    ToastTemplateType.ToastImageAndText02);

XmlNodeList stringElements = toastXml.GetElementsByTagName("text");
stringElements.Item(0).AppendChild(toastXml.CreateTextNode("Hello world!"));

IXmlNode toastNode = toastXml.SelectSingleNode("/toast");

XmlAttribute launchAttribute = toastXml.CreateAttribute("launch");
launchAttribute.Value = "pass data here"; // TODO: pass data here
toastNode.Attributes.SetNamedItem(launchAttribute);

ToastNotification toast = new ToastNotification(toastXml);
ToastNotificationManager.CreateToastNotifier().Show(toast);

当用户点击Toast通知时,您可以处理App启动事件,然后读取数据。

protected override void OnLaunched(LaunchActivatedEventArgs e)
{
    // ...

    MainPage page = rootFrame.Content as MainPage;
    page.ParseData(e.Arguments);
}