2017-01-23 3 views
0

Я хочу включить push-уведомления для мобильного приложения UWP, подключенного к службе Azure с помощью базы данных Azure SQL. Уведомления будут уведомлять только пользователей, которые находятся в пределах x километров от определенной геокоординаты.Как отслеживаются пользователи для оповещений о местоположении?

Однако я не ясно, о том, как отслеживать пользователей, мои вопросы заключаются в следующем,

В моей базе данных я должен хранить каждый пользователь, который использует приложение и обновлять их расположение периодически? Я предполагаю, что мне нужно будет сделать это, чтобы рассчитать, какие из них находятся в радиусе действия, и отправлять уведомления только этим. Однако это приводит меня к следующему вопросу:

Если бы я собирался хранить запись для каждого пользователя в моей базе данных, какой идентификатор используется для них? Как пользователи идентифицируются на каждом устройстве? Нужно ли им регистрироваться с авторизационным провайдером, таким как Facebook, Twitter и т. Д., Чтобы мое приложение записывало уникальный идентификатор? Или существует другой механизм создания или получения уникального идентификатора?

ответ

0

отслеживать местоположение пользователя в push-уведомлениях нет. Вы можете сделать две вещи:

раствор 1: - используйте геозонность, которая запускает фоновое задание. Если вы вводите регистр геозонности для push-уведомлений. Если вы оставите geofence снова отказаться от подписки на своем сервере.

solution 2: - отправлять только сырые уведомления и использовать фоновые задачи для их обработки. В фоновой задаче вытереть текущее местоположение, и если в нужном месте инициировать уведомление из кода.

1

@DaveSmits находится в правильном направлении. Вы можете зарегистрировать GeofenceBackgroundtask, чтобы сообщить местоположение пользователя вашему лазурному сервису. Помимо текущего местоположения вам также необходимо сообщить текущий канал устройства Uri на ваше устройство zaure.

Я считаю, что вы знакомы с WNS. Если нет, проверьте этот документ, он объяснит, что для вас канал Uri.

Затем в вашей службе azure вам нужно сохранить местоположение и канал Uri в некоторых таблицах базы данных. Вам нужно будет окупить расстояние от определенной гео координаты. Если это соответствует требованию, вы можете получить все квалифицированные каналы Uris (например, select channelUri from yourtable where location='xxxxx')

После того, как вы получите весь канал Uris, вы можете использовать его для отправки уведомлений определенным пользователям. О том, как отправить уведомление, пожалуйста, проверьте документ WNS.

Я ответил на аналогичный вопрос на MSDN, он также должен отправлять уведомления определенным пользователям.

+0

вытащить местоположение устройства через фоновое задание, возможно ли это? Поскольку я пытался это сделать, но окна не позволяют фоновым задачам отправлять данные о местоположении. Подробнее об этом: https://msdn.microsoft.com/en-us/windows/uwp/maps-and-location/guidelines-and-checklist-for-detecting-location, в котором указано, что приложение должно быть на переднем плане –

+0

Что об этом сценарии - приложение погоды, которое требует, чтобы пользователь входил в систему и устанавливал свое домашнее местоположение. Затем отправьте уведомление на основе сохраненного исходного местоположения (не текущей позиции). Как связать канал Uri с отдельным пользователем (а не с устройством) - например, получить пользователей на основе домашнего местоположения из таблицы пользователей, а затем отправить только этим пользователям уведомление на основе их канала Uri. – erotavlas

+0

@erotavlas Если 'home location' установлен пользователем. Возможно, вам стоит подумать о [Преобразование адресов в географические местоположения] (https://msdn.microsoft.com/en-us/windows/uwp/maps-and-location/geocoding), тогда вы можете отправить информацию о координатах в свою лазурную службу. О 'Как связать канал Uri с отдельным пользователем (а не с устройством)', я должен был объяснить в моем ответе выше, канал Uri уникален для каждого устройства. Пожалуйста, прочитайте [WNS] (https://msdn.microsoft.com/en-us/windows/uwp/controls-and-patterns/tiles-and-notifications-windows-push-notification-services--wns--overview) более тщательно. –

Смежные вопросы