Отправлять уведомления конкретному пользователю с помощью концентратора уведомлений - Azure и GCM
Я разработчик программного обеспечения в Xamarin - Android, я хочу создавать уведомления. Для этого я использую центр уведомлений Azure в сочетании с сервисом Google - Google Cloud Messaging (GCM).
Моя проблема возникает, когда я хочу отправить уведомление конкретному пользователю. Я понял, что мне нужно использовать "TAGS", когда я создаю нового пользователя в системе (Uniqe TAG)
Действительно, это прекрасно работает, но когда пользователь вышел из своей учетной записи, а затем подключился к другой (с другой TAGS) - TAGS его старой учетной записи сохраняются в определенное время, и он продолжает получать личные сообщения от предыдущей учетная запись!!!!
Кто-нибудь знает, что с этим можно сделать?
большое спасибо вам
1 ответ
На самом деле это проблема многих людей / приложений на iOS и Android.
Что вы должны сделать, это:
- При первом запуске зарегистрируйте свое приложение в Центре уведомлений Azure (ANH) и регистрируйте его при каждом запуске, чтобы синхронизировать регистрацию.
- Если пользователь входит в систему, обновите регистрацию дополнительным тегом для этого пользователя (например, "user:XY")
- Отправка уведомлений в этот тег пользователя, конечно, приведет к уведомлениям на всех устройствах, на которых пользователь вошел в систему.
- Если пользователь выходит из системы, обновите регистрацию без пользовательского тега (пропустите пользовательский тег, чтобы после регистрации больше не было пользовательского тега)
- Регистрация будет немедленно обновлена на ANH, и отправка уведомлений пользователю (тегу) не приведет к уведомлениям на этом конкретном клиенте.
Если пользователь может выйти из вашего приложения без подключения к Интернету, вы, конечно, не сможете обновить регистрацию, и у вас все равно будет проблема получения уведомлений для вышедшего из системы пользователя. Но как только другой пользователь входит в систему, регистрация должна обновляться с новым тегом пользователя, и все должно быть в порядке снова...
Что вы не должны делать: