2015-07-16 3 views
0

Привет, я хочу, чтобы мое приложение переходило на страницу, когда я получаю push toast notification. Мой код выглядит следующим образом: -Перемещение с App.xaml.cs при получении push-уведомления

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, любая помощь будет оценена.

ответ

0

Вам нужно будет отображать уведомление тост вместо:

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); 

Когда пользователь нажимает на уведомления тоста, вы можете обрабатывать событие запуска приложения, а затем прочитать данные.

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

    MainPage page = rootFrame.Content as MainPage; 
    page.ParseData(e.Arguments); 
} 
Смежные вопросы