Мы используем концентратор уведомлений Azure для управления регистрации уведомлений. Каждый раз, когда пользователь запускает приложение, мы вызываем PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync, а затем RegisterNativeAsync of NotificationHub для регистрации uri канала, который сначала возвращается с некоторыми тегами, такими как «Username» и «InstallId» - это уникально для каждой установки приложения. Затем из исходного кода мы отправляем уведомления с использованием этих тегов.PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync duplicate channel
Но мы заметили проблему - когда пользователь жестко сбрасывает устройство, предыдущая регистрация канала остается активной в концентраторе уведомлений. В этом случае пользователь получает повторяющиеся уведомления своим тегом «Username». В этом случае «InstallId» не поможет, так как он меняется с новой установкой приложения.
Мы думали об управлении каналами на стороне сервера. Но это не решит проблему.
Возможно, у кого-то есть предложения по работе? Кроме того, мы не знаем, какую информацию использует PushNotificationChannelManager при создании нового или возвращающегося существующего канала? Использует ли он какую-либо информацию об устройстве?
Благодарим вас за ответ. Мы подумали об использовании «ASHWID» HardwareToken, как вы уже сказали, но мы заметили, что когда пользователь устанавливает инсайдерскую версию Windows 10, иногда также обновляется имя устройства. И мы боимся, что HardwareToken изменится в этом случае. Необходимо проверить это. – saniokazzz
Проверьте https://msdn.microsoft.com/en-us/library/windows/apps/jj553431 и подумайте, что использование HardwareToken не является вариантом, так как нам нужно 100% -ное решение. – saniokazzz
с использованием ASHWID в сочетании с идентификатором установки должен помочь вам создать правило фильтра, чтобы избежать дублирования регистрации в концентраторе уведомлений: Если пользователь установит приложение (новый идентификатор установки) на машине с известным ASHWID, вы не будете создавать новую регистрацию, если существует. , если пользователь открывает приложение с известным идентификатором установки, но новый ASHWID (укажите аппаратное изменение), проверьте, является ли изменение оборудования критичным (например, замена жесткого диска), чтобы решить, нужна ли вам новая регистрация или нет. – thang2410199