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

IOS 9远程通知中的滑动按钮-在应用程序处于后台时工作,而不是在应用程序内存不足时工作,ios,objective-c,push-notification,xmpp,apple-push-notifications,Ios,Objective C,Push Notification,Xmpp,Apple Push Notifications,我已经成功地实现了对我请求的查询通过通知进行回复[ 我的问题是,我确实收到了一个回调,我可以使用此方法执行必要的处理操作,如从文本字段获取文本,以及在“运行时”不从后台打开应用程序的情况下发送聊天信息: - (void) application:(UIApplication *)application handleActionWithIdentifier:(nullable NSString *)identifier forRemoteNotification:

我已经成功地实现了对我请求的查询通过通知进行回复[

我的问题是,我确实收到了一个回调,我可以使用此方法执行必要的处理操作,如从文本字段获取文本,以及在“运行时”不从后台打开应用程序的情况下发送聊天信息:

- (void)         application:(UIApplication *)application
  handleActionWithIdentifier:(nullable NSString *)identifier
       forRemoteNotification:(NSDictionary *)userInfo
            withResponseInfo:(NSDictionary *)responseInfo
           completionHandler:(void(^)())completionHandler
我的问题是,当应用程序不在内存中且按下home(主页)按钮时没有在后台运行,就像场景中一样,通过通知进行回复时没有发送聊天

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

如何处理这个问题。我希望类似于whatsapp,当应用程序甚至没有打开时,但在通知回复时,我们可以向其他用户发送whatsapp消息,他也会收到,类似于Skype


我的理解有缺失还是必须做其他事情。

对于iPhone,应用程序需要做两件事之一:

  • 使用Apple推送通知
  • 请求VOIP权限
  • VOIP将允许应用程序在后台继续接收消息,即使它处于“休眠”状态。但是,苹果需要批准你的应用程序符合此权限

    编辑:

    XMPP需要打开的TCP连接。如果连接关闭,服务器将不知道如何路由消息。这意味着即使应用在后台,也要保持TCP连接打开


    这种安排被苹果称为“VOIP功能”这需要特殊权限。使用VOIP,来电只能在具有活动TCP连接的手机上激活。因此,XMPP本质上与VOIP相同。

    我现在正在处理它,与u一样。当您收到通知时,您应该将action.activationMode=UIUserNotificationActivationModeBackground;设置为所有条件下的action.activationMode=UIUserNotificationActivationModeBackground当你回复它时,应用程序将启动,你可以在你的代理中处理它,因为你告诉我whatsapp和skype没有打开,但来自通知的回复是完全错误的。当whatsapp或skype打开一次,应用程序将在后台运行,即使你双击home按钮关闭应用程序。你的pp应该在后台工作,如果你想实现你的应用程序功能Hi Balaji,我们再次确认,如果你双击home按钮,你将不会看到whatsapp应用程序打开,并且仍然在后台,XMPP以某种方式连接,并将消息发送给另一边的人。我说的是IOSPhone@Mohammad例如我试过了,但没有成功正在工作,但我没有使用任何Voip功能,我正在要求苹果公司批准这一功能。让我试试这个,吉姆,然后回到帖子上,感谢你的解释。