Отдельный нормальный запуск с push-уведомлением Windows Phone 7

Привет, я разрабатываю приложение для Windows Phone 7 с ежедневным обновлением при запуске и включением push-уведомлений. пока я использую 2 типа push-уведомлений одновременно (тост и плитка). так как мое приложение требует длительного обновления. поэтому мне придется различать обычный запуск (будет обновляться) и запуск с push-уведомления (обновление не будет разрешено). Теперь я могу различить тост со строкой запроса. но когда я начинаю с плитки, я не могу, потому что я не знаю, как получить счет с плитки моего приложения.

поэтому возникает вопрос: «Как я могу получить счет из уведомления о плитке?»


person keoaudam    schedule 02.11.2011    source источник


Ответы (1)


Вы можете запросить данные своей плитки при запуске приложения и посмотреть на свойство Count, если > 0, это запуск после уведомления.

Чтобы получить плитку приложения:

var tileToFind = ShellTile.ActiveTiles.First();
int count = tileToFind.Count;
person MatthieuGD    schedule 02.11.2011
comment
Хороший ответ. Не забывайте, что счетчик плитки представляет собой только тот счетчик, когда он был в последний раз установлен в коде или когда сервер в последний раз доставлял push-уведомления. Например, счетчик непрочитанной электронной почты действителен только до тех пор, пока Hotmail сообщает моему телефону, что я прочитал все свои сообщения электронной почты в браузере на своем рабочем столе. Через 5 минут или около того между чтением электронной почты на моем рабочем столе и обновлением телефона Hotmail счет будет недействительным. Возможно, вы захотите реализовать метод проверки сервера, а не зависеть от количества тайлов. - person Jared Bienz - MSFT; 02.11.2011
comment
На самом деле для класса Microsoft.Phone.Shell.ShellTile нет свойства Count. Я могу получить доступ только к свойству NavigationUri и есть метод Update, Delete. Это проблема моего SDK или что-то еще? - person keoaudam; 03.11.2011
comment
Ты прав. В моем приложении я использую фоновый агент для обновления моего свойства Tile/Count, поэтому я также устанавливаю флаг в локальной базе данных, которую я запрашиваю при запуске, чтобы узнать, было ли уведомление. - person MatthieuGD; 03.11.2011