0

当应用程序在后台运行时,我需要更新我的用户在他们当前位置周围发生的事情。

据我了解:

  1. 如果我的服务器向客户端发送推送通知,客户端将立即显示该消息。

  2. 我可以设置应用程序,以便在给定半径的特定位置可以触发消息。

因此,我想了解是否有可能向我的用户更新他们所在位置的新事物。

我在考虑两种可能的解决方案,我不确定它们是否可行。

一,我猜推送通知是否允许函数在显示之前运行,从而决定消息是否应该出现。

例如something happened in area x,y - The server initiates a message to all devices. Only the devices within range of x,y and a radius z, would show the message to the users.

也许区域监控服务可以向我的服务器发送消息,然后我的服务器可以决定是否将推送通知发送回客户端......

例如

The user has entered a defined location, determined by the app. The app sends a message to the server. The server decides if a message is due. 

有任何想法吗?这甚至可能吗?

4

2 回答 2

1

按主题过滤推送通知是您需要在服务器端而不是客户端执行的操作。Apple 特别声明不要向不相关的用户发送消息,并且当应用程序未运行时您将无法阻止它们。此外,如果您使用服务来管理您的推送通知,您不想为不相关的消息付费。

因此,当您将设备注册到数据库中时,您应该注册该人订阅的主题(即保存用户有资格接收的主题列表)。然后,当触发生成推送通知的事件时,仅发送到注册到该主题的设备。我相信许多推送平台已经内置了这种功能。在 UrbanAirship 和 Azure 通知中心上,您可以使用它们的tags功能。或者如果你自己做推送服务器,你可以自己开发。

于 2013-10-15T20:23:33.433 回答
1

看看Parse。他们有这种功能,只需将推送发送给匹配 geoPoint 查询的客户端

于 2013-10-15T21:20:27.920 回答