通知iOS和Android服务器上的数据更改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通知iOS和Android服务器上的数据更改相关的知识,希望对你有一定的参考价值。

我正在为iosandroid创建移动应用程序。问题是当服务器上的任何数据发生变化时,我无法通知移动设备。

我找到了3个解决方案,每个都有减号和优点。

  1. 使用推送通知。由于iOS始终向用户显示通知,因此这根本不是解决方案。此外,我不知道通知是否会转到设备或何时发生。
  2. 每隔X秒询问服务器是否存在任何更改。我不想这样做,因为我认为创建太多的HTTP连接并关闭它们并不是一个好主意。此外,如果在设备询问后立即更改数据,则设备上的信息更改将会延迟发生。
  3. 使用Web套接字。我的应用程序的一次使用期望是~2分钟。因此,网络套接字看起来是一个不错的选择,因为应用程序将被终止或快速进入后台状态,电池消耗不会太多。此外,所有服务器端数据更改都将及时到达设备。但我对网络套接字知之甚少。我的意见可以接受吗?此外,我的服务器可以完成多少并发连接。这也是一个问题。

这是我的所有解决方案。

答案

该文件将建议假设1.以上是不正确的。

如果您阅读“通知有效负载”部分,您会遇到此问题;

aps字典还可以包含content-available属性。值为1的content-available属性允许远程通知充当“静默”通知。当无声通知到达时,iOS会在后台唤醒您的应用程序,以便您可以从服务器获取新数据或进行后台信息处理。用户不会被告知由静默通知产生的新信息或更改信息,但他们可以在下次打开您的应用时找到相关信息。

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html

另一答案

我认为这在很大程度上取决于你的应用程序在做什么。

我会说你应该使用#1和#2的组合。

2 - 如果您需要来自服务器的信息,则在最基本级别您将不得不提出请求。如果此信息需要是最新的,那么您可以在加载ViewController时继续请求信息。如果您需要在加载ViewController时更新此信息,那么您需要每隔X秒进行一次后续请求...除此之外如果您的用户正在与此数据交互并向服务器发送更新,您可以在此处查看指出数据是否是最新的,并提醒用户以及返回当前数据。

1 - 推送通知操作“发送和忘记”协议。发送通知,如果收到通知,则不会进行验证。这被用作#2的补充,并且“很好”,但不应该依赖。

另一答案

推送通知是预期的方式(从Google到Google云消息传递,Apple到Apple推送通知服务)。

选项2和3都不受欢迎,因为它们会影响电池寿命,并且它们是不必要的,因为推送通知可以涵盖大多数情况。

以上是关于通知iOS和Android服务器上的数据更改的主要内容,如果未能解决你的问题,请参考以下文章

更改前屏 iOS 上的通知图标和应用程序名称

使用 FCM 解析部署在 Amazon EC2 Android 通知上的服务器

iOS - 在收到推送通知事件时更改视图的内容

如何将推送通知添加到WebView App(Android和iOS)

带有远程视图的 Android 10 上的黑暗通知

更改键盘通知上的视图布局(Swift、iOS)