Тост-уведомление Windows Phone 7

во всплывающем сообщении в Windows Phone 7, при нажатии на это сообщение приложение открывается, все в порядке,

я просто хочу перейти на определенную страницу при нажатии всплывающего сообщения,

есть ли способ сделать это?

как в 7 так и в манго апдейт???

or

в http://samidipbasu.com/2011/06/14/push-notification-payloads/ в этой ссылке, когда мы читаем всплывающее уведомление, у нас есть дополнительный параметр с именем wp:Param в формате xml для отправки. Как они отправляли эти данные wp:Param в Windows 7.0 (до обновления манго). Любая идея ??


person curiosity    schedule 28.06.2011    source источник


Ответы (3)


@curiosity .. Полезные нагрузки Toast & Tile предопределены, поэтому ОС может обрабатывать эти биты, поступающие из MPNS, после того, как ваше приложение зарегистрирует shellToast/shellTile. Предполагается, что дополнительные параметры в полезной нагрузке поддерживаются, начиная с Mango. Поскольку первая страница вашего приложения (или любая другая страница XAML в URL-адресе) запускается из всплывающего уведомления, разработчик должен иметь возможность прослушивать событие OnNavigatedTo(), чтобы сделать что-то особенное с параметрами входящего URL-адреса (строка запроса ). Пожалуйста, смотрите некоторые более поздние сообщения в моем блоге для примеров и дайте мне знать, если это поможет.

Спасибо!

person Sam Basu    schedule 28.06.2011
comment
так это невозможно в windows 7? - person curiosity; 29.06.2011
comment
Неа. ОС начнет обрабатывать новые биты полезной нагрузки, начиная с Mango; не сейчас. Теперь, если ваша полезная нагрузка Push включает в себя дополнительные функции в версии 7.0, ОС может игнорировать и по-прежнему работать обычные всплывающие уведомления или может перестать работать. Надеюсь это поможет. - person Sam Basu; 29.06.2011
comment
Итак, сегодня можно ли вообще определить разницу между запуском приложения обычным способом (например, пользователь касается плитки моего приложения) и запуском приложения из всплывающего окна? Когда мое приложение запускается, я хочу иметь возможность спросить, был ли я только что запущен с помощью всплывающего уведомления? (Я согласен с тем, что у меня нет дополнительных данных полезной нагрузки - я просто хочу просто ответить да/нет на этот вопрос.) - person Ian Griffiths; 01.07.2011
comment
Ян Гриффитс — я не знаю такого в Windows Phone 7.0 - person Sam Basu; 05.07.2011

Поддержка перехода на определенную страницу поддерживается в Mango. Ниже приведен пример, который не требует HTTP-канала, но должен выполняться фоновым агентом (а не самим приложением):

var toast = new ShellToast
{
    Title = "Title",
    Content = "Toast content",
    NavigationUri = new Uri("/SomeOtherView.xaml", UriKind.Relative)
};

toast.Show();

ПРИМЕЧАНИЕ. Функциональность NavigationUri также поддерживается всплывающими уведомлениями, отправляемыми через push-уведомления HTTP

person Richard Szalay    schedule 28.06.2011
comment
да, я знаю это.. он поддерживается только в обновлении 7.1.. я прошу 7.0 - person curiosity; 28.06.2011
comment
Нет, не поддерживается в 7.0 - person Richard Szalay; 29.06.2011

вся информация, которую вам нужно знать о push-уведомлениях, приведена на странице Tile-Notifications-for-Alerts" rel="nofollow">здесь

person harryovers    schedule 28.06.2011
comment
я видел это .. я хочу конкретный ответ - person curiosity; 28.06.2011
comment
вам нужно обработать полученную информацию и перейти на другую страницу после загрузки приложения. если вы разместите какой-то код, я мог бы быть немного более конкретным - person harryovers; 28.06.2011
comment
статическая строка toastMessage = ‹?xml version=\1.0\ encoding=\utf-8\?› + ‹wp:Notification xmlns:wp=\WPNotification\› + ‹wp:Toast› + ‹wp:Text1›{0}‹ /wp:Text1› + ‹wp:Text2›{1}‹/wp:Text2› + ‹/wp:Toast› + ‹/wp:Notification›; Вот как я отправляю сообщение xml... в тост-уведомление... Это уведомление отправляется с помощью службы wcf... и даже когда клиент закрыт, сообщение передается. в таком случае, как я могу написать код навигации на стороне клиента? Я думаю, вы ясно - person curiosity; 28.06.2011
comment
у вас есть какой-нибудь код, когда приложение загружается и вы читаете сообщение? - person harryovers; 28.06.2011
comment
позвольте мне спросить по-другому. /push-notification-payloads в этой ссылке, когда мы читаем всплывающее уведомление, у нас есть дополнительный параметр с именем wp:Param в формате xml для отправки. Как они отправляли эти данные wp:Param в Windows 7.0 (до обновления манго). Любая идея ?? - person curiosity; 28.06.2011
comment
вам нужно будет что-то сделать, чтобы проанализировать отправленное сообщение, если вы отправляете сообщения в известном формате, вы можете просто вытащить нужные вам данные, например. ‹wp:Text1›Заказ готов‹/wp:Text1› ‹wp:Text2›ваш заказ (id: 12345) готов к сбору‹/wp:Text2›. вы сможете разобрать сообщение и прочитать идентификатор и заголовок, чтобы определить, каким должно быть действие. - person harryovers; 28.06.2011
comment
но эти коды должны быть написаны только на стороне клиента ... когда мы переходим к оболочке, нажимая назад, приложение закрывается ... поэтому любой код, написанный на стороне клиента, бесполезен. - person curiosity; 29.06.2011
comment
harryovers, вот что совершенно неясно: если ваше приложение не было запущено, когда пришло всплывающее уведомление, как вы можете получить полезную нагрузку уведомления? Все примеры, которые я видел, включая те, что приведены в статье, на которую вы ссылаетесь, совершенно не справляются с этим. Они только показывают, как увидеть полезную нагрузку, если ваше приложение уже работало, когда пришло всплывающее уведомление. Но весь тост сценария предназначен для поддержки того, где ваше приложение на самом деле не работает. Вы продолжаете просить код, но в том-то и дело: люди пытаются понять, какой код может поддерживать этот сценарий! - person Ian Griffiths; 01.07.2011
comment
Другими словами: когда мое приложение запускается, как я могу определить, было ли оно запущено пользователем, запускающим мое приложение, обычным способом или через тост? Если пользователь увидит всплывающее уведомление о моем приложении (пока оно не запущено) и коснется этого всплывающего уведомления, мое приложение запустится. Как я могу обнаружить, что это то, что произошло? Статья, на которую вы ссылаетесь, не касается этого, поэтому на самом деле она не содержит всей информации, которую вам нужно знать о push-уведомлениях. - person Ian Griffiths; 01.07.2011