Увеличение значения значка без фоновой задачи

Я создаю приложение для обмена сообщениями в качестве универсального проекта магазина Windows 8.1, и я немного озадачен системой push-уведомлений. Я использую WNS, и базовая процедура работает нормально (обмен uri канала уведомлений, доставка всплывающих уведомлений и т. д.)

Теперь я хочу увеличить значение значка с помощью уведомлений сервера и уменьшить его с помощью локальных уведомлений. Покопавшись в руководствах, я, похоже, не нашел способа сделать это без фоновой задачи, которая получала бы необработанные уведомления и что-то делала для установки правильного значения. Все, что я нашел, это настройка значение. Я бы предпочел вообще избегать использования фоновых задач, поскольку они могут быть заблокированы функцией экономии заряда батареи (по намерению пользователя или нет). Skype, например, похоже, вообще не может предоставлять какие-либо уведомления с заблокированным фоновым выполнением, и я не хочу, чтобы мое приложение вело себя таким образом.

Итак, есть два вопроса, на которые я хотел бы получить ответы:

  1. Есть ли способ увеличить/уменьшить значение значка только с помощью уведомлений?
  2. Есть ли способ получить текущее значение значка в коде приложения?

person Michael Antipin    schedule 01.12.2015    source источник


Ответы (2)


Детали плитки, включая значение значка, доступны только для чтения.

Старайтесь не думать о номере значка как об увеличении или уменьшении, а просто установите новое значение.

Вам потребуется запустить код, чтобы изменить значение. Это может быть в локальном приложении (когда оно запущено), в фоновом агенте/задаче на устройстве или где-то на удаленном сервере.

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

Итак, отвечая на ваши вопросы, в обратном порядке.

2) Нет, вы не можете прочитать текущее отображаемое значение.

1) Вы можете увеличить или уменьшить отображаемое значение, установив для него новое, большее или меньшее значение. Установка нового значения может быть выполнена только с абсолютным значением, поскольку не существует понятия сообщения об увеличении (или уменьшении). Уведомление, отправленное для обновления плитки, может быть отправлено из любого места (переднего плана, фона или удаленно), но когда и как это должно быть сделано, будет зависеть от того, что лучше для приложения/пользователя.

person Matt Lacey    schedule 01.12.2015
comment
Спасибо, Мэтт! К сожалению, это подтверждает мои выводы. Поскольку я хочу, чтобы мое приложение могло постоянно уведомлять пользователя об обновлениях (в конце концов, это мессенджер), я теперь решил реализовать только удаленные обновления счетчика значков. Это потребует информирования сервера о том, какие обновления были использованы клиентом, чтобы он мог определить правильный номер оставшихся обновлений. У моих товарищей по команде с iOS и Android, похоже, не такие уж проблемы с этой функциональностью. - person Michael Antipin; 01.12.2015

Что ж, я попытался сделать то же, что и вы, но ничего не нашел, и лучший способ сделать это с помощью фоновой задачи и добавить фоновую задачу, чтобы всегда разрешать, переопределяя элементы управления, когда пользователь открывает приложение в первый раз.

Надеюсь, это поможет вам.

person Killing_Falcon    schedule 01.12.2015