当应用程序处于后台时,React Native JS不会执行

时间:2016-01-07 03:15:29

标签: javascript ios sockets react-native

我正在尝试在ios React Native应用程序中使用推送通知,并且在那里。我遇到的一个问题是,当应用程序在后台时显示通知的逻辑在应用程序再次变为活动状态之前不会执行。我正在使用Socket.io并监听事件,但处理的代码(比如onChat事件)在​​应用程序处于活动状态之前不会运行。我已经确认套接字仍然连接。

一件奇怪的事情是在模拟器中工作但在我的设备上却没有。也许存在性能优化,当应用程序放在后台时,会停止JS执行。

当appstate在后台时,如何让我的JS执行?

我正在做的是在通过套接字收到事件并且它运行时调用函数:

PushNotificationIOS.presentLocalNotification({
  alertBody: `New Chat: ${chat.message}`,
});

1 个答案:

答案 0 :(得分:1)

感谢this stack overflow question and answers我能够发现代码不是在后台状态下执行,以便为暂停状态做好准备。后台模式是一种过渡状态,用于准备应用程序屏幕上的#34;。套接字仅在此后的短时间内保持连接,但最终会终止。

在执行推送通知的情况下,我需要将其转到Parse或其他服务,以便在应用处于后台时将通知推送到我的应用。

另见http://zeroheroblog.com/ios/what-to-do-when-your-iphone-app-moves-to-the-background