IOS 9中的滑动按钮远程通知 – 在应用程序处于后台时工作,而不是应用程序内存不足时

我已经成功实现了回复通知我的问题[ 滑动按钮不会出现远程通知

我的问题是我得到一个回调,我可以做一些必要的处理操作,比如从文本字段中获取文本,并在不使用此方法运行时从后台打开应用程序时执行必要的发送聊天消息:

- (void) application:(UIApplication *)application handleActionWithIdentifier:(nullable NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo withResponseInfo:(NSDictionary *)responseInfo completionHandler:(void(^)())completionHandler 

我的问题是当应用程序不在内存中并且当主页按钮按下方式时没有在后台运行时,通过通知的相同回复不发送聊天。

我怀疑它无法连接XMPP – >连接我的数据库 – >当应用程序完全不在后台时通过XMPP发送数据。

怎么处理这个。 我希望类似于whatsapp,就像应用程序甚至没有打开,但在通知回复时我们可以向其他用户发送一个whatsapp消息,他得到它,类似的Skype也是如此。

我是缺少理解还是不得不做任何其他事情。

对于iPhone,该应用程序需要执行以下两项操作之一:

  1. 使用Apple推送通知
  2. 请求VOIP权限

VOIP将允许应用程序继续在后台接收消息,即使它是“睡着了”。 但是,Apple需要批准您的应用程序才有资格获得此权限。

编辑:

XMPP需要开放的TCP连接。 如果连接关闭,服务器不知道如何路由邮件。 这意味着即使应用程序在后台,也可以保持TCP连接处于打开状态。

这种类型的安排是Apple将其归类为需要特殊许可的“VOIPfunction”。 使用VOIP,来电只能在具有活动TCP连接的电话上激活。 因此,XMPP与VOIP基本相同。