尽管我的应用程序没有运行,但如果不使用Apple推送通知服务,是否可以使用服务器端事件通知iOS用户?

尽管我的应用程序没有运行,但如果不使用Apple推送通知服务,是否可以使用服务器端事件通知iOS用户?,ios,push-notification,apple-push-notifications,server-sent-events,Ios,Push Notification,Apple Push Notifications,Server Sent Events,我正在考虑使用EventSource(服务器发送的事件)向我的iOS应用程序用户发送通知,而不是APN。当应用程序处于活动状态时,这非常好,但是否可以确保这些用户在我的应用程序当前未在其设备上运行时收到我的消息?或者说,APNS是实现此目的的唯一方法?如果您需要事件实时到达(如消息传递系统),那么APNS可能是您的最佳选择。APNS是从服务器向应用程序发送实时消息的唯一方法。然而,明智的做法是知道推送通知有缺点 如果您不关心实时事件(而不是消息传递系统),或者如果事件稍微延迟一点也没关系,那么可

我正在考虑使用EventSource(服务器发送的事件)向我的iOS应用程序用户发送通知,而不是APN。当应用程序处于活动状态时,这非常好,但是否可以确保这些用户在我的应用程序当前未在其设备上运行时收到我的消息?或者说,APNS是实现此目的的唯一方法?

如果您需要事件实时到达(如消息传递系统),那么APNS可能是您的最佳选择。APNS是从服务器向应用程序发送实时消息的唯一方法。然而,明智的做法是知道推送通知有缺点

如果您不关心实时事件(而不是消息传递系统),或者如果事件稍微延迟一点也没关系,那么可以使用后台抓取来定期轮询服务器以获取新事件


Objc.io有一篇很棒的文章讨论了其中的一些问题:

我不认为APNS是唯一的方法。如果客户端打开与服务器的SSE连接,服务器可以实时发送通知。我需要知道是否有办法将我的SSE服务安装到用户的iPhone上,并让它在应用程序退出或运行(后台或其他)时运行。@user2817034-brimizer是正确的。一旦应用程序关闭或挂起,它就无法再运行代码来访问服务器进行通知。iOS设置的基本限制是,用户关闭应用程序后,运行任何附加代码的最大时间为10分钟。取回是你唯一的选择。