Android 通知iOS&;安卓在服务器上更改数据
我正在为iOS和Android创建移动应用程序。问题是,当服务器上的任何数据发生更改时,我无法通知移动设备 我找到了3个解,每个解都有正负Android 通知iOS&;安卓在服务器上更改数据,android,ios,server,Android,Ios,Server,我正在为iOS和Android创建移动应用程序。问题是,当服务器上的任何数据发生更改时,我无法通知移动设备 我找到了3个解,每个解都有正负 使用推送通知。由于iOS总是向用户显示通知,因此这根本不是一个解决方案。我也不知道通知是否会发送到设备或何时发送 每隔X秒询问服务器是否存在任何更改。我不想这样做,因为我认为创建太多HTTP连接并关闭它们不是一个好主意。此外,如果数据在设备发出请求后立即更改,则设备上的信息更改将延迟 使用web套接字。我的应用程序的一次性使用预期为~2分钟。所以WebSoc
以下是我的所有解决方案。该文件将建议假设1。以上是不正确的 如果您阅读了通知有效负载一节,您会发现这一点 aps字典还可以包含“内容可用”属性。值为1的content available属性允许远程通知充当“静默”通知。当静默通知到达时,iOS会在后台唤醒您的应用程序,以便您可以从服务器获取新数据或进行后台信息处理。用户不会被告知由静默通知产生的新信息或更改信息,但他们可以在下次打开应用程序时发现
我认为这在很大程度上取决于你的应用程序在做什么 我认为你应该使用#1和#2的组合 2-在最基本的级别上,如果您需要服务器提供的信息,则必须发出请求。如果此信息需要最新,则可以在加载ViewController时继续请求该信息。如果需要在加载ViewController时更新此信息,则需要每隔X秒发出后续请求。。。此外,如果您的用户正在与此数据交互并向服务器发送更新,则此时您可以检查数据是否为最新数据,并提醒用户并返回当前数据
1-推送通知在“发送并忘记”协议之外运行。通知已发送,但未验证是否已收到。这是对#2的补充,是“好的”,但不应依赖于此。推送通知是预期的方式(从谷歌通过谷歌云消息,苹果通过苹果推送通知服务)
选项2和3都不受欢迎,因为它们会影响电池寿命,而且它们是不必要的,因为大多数情况下推送通知都可以覆盖场景。这需要什么类型的应用程序。.我建议使用WebSocket,因为我发现它对服务器到客户端的通信很有用。.应用程序将对象声明为打开、关闭或关闭。我必须在对象状态改变时通知用户——几乎是准确的时间。任何用户都不应将关闭的对象视为open或Willclose。我建议使用web套接字,因为您的服务器似乎需要非常频繁和即时地与客户端进行通信。在我的情况下,不是非常频繁,而是即时。Ok。我有个错误。感谢您提供的信息,但通知状态(传输状态)仍然未知。任何设备都可能接收不到通知APNS非常准确。设备接收到的通知通常是及时的,但GCM不是。有时安卓设备什么也收不到。它不仅仅是更新数据。如果是,没问题,我可以用#2。我的一个老应用程序就是这样运行的。但这一次,应用程序将对象声明为打开、关闭和关闭。我必须在对象状态改变时通知用户——几乎是准确的时间。任何用户都不应将关闭的对象视为打开或将关闭。您将拥有一个计时器,该计时器将递减以实时显示时间变化。当此计时器达到X秒时,它将命中服务器并更新时间。当计时器继续倒计时时,如果达到10分钟,那么它将命中服务器并更新时间,如果距离关闭时间确实是10分钟,那么您可以在该时间准确地更新用户。。。关闭时间也是一样。正如我提到的,我的应用程序的预期活动时间太短,我不担心电池寿命。但我不知道web套接字的其他场景。