我正在为iOS和Android创建移动应用程序。问题是当服务器上的任何数据发生变化时,我无法通知移动设备。
我找到了3个解决方案,每个都有减号和优点。
这是我的所有解决方案。
该文件将建议假设1.以上是不正确的。
如果您阅读“通知有效负载”部分,您会遇到此问题;
aps字典还可以包含content-available属性。值为1的content-available属性允许远程通知充当“静默”通知。当无声通知到达时,iOS会在后台唤醒您的应用程序,以便您可以从服务器获取新数据或进行后台信息处理。用户不会被告知由静默通知产生的新信息或更改信息,但他们可以在下次打开您的应用时找到相关信息。
我认为这在很大程度上取决于你的应用程序在做什么。
我会说你应该使用#1和#2的组合。
2 - 如果您需要来自服务器的信息,则在最基本级别您将不得不提出请求。如果此信息需要是最新的,那么您可以在加载ViewController时继续请求信息。如果您需要在加载ViewController时更新此信息,那么您需要每隔X秒进行一次后续请求...除此之外如果您的用户正在与此数据交互并向服务器发送更新,您可以在此处查看指出数据是否是最新的,并提醒用户以及返回当前数据。
1 - 推送通知操作“发送和忘记”协议。发送通知,如果收到通知,则不会进行验证。这被用作#2的补充,并且“很好”,但不应该依赖。
推送通知是预期的方式(从Google到Google云消息传递,Apple到Apple推送通知服务)。
选项2和3都不受欢迎,因为它们会影响电池寿命,并且它们是不必要的,因为推送通知可以涵盖大多数情况。