React Native JS没有'应用程序处于后台时无法执行

React Native JS doesn't execute while app is in background

本文关键字:后台 执行 于后台 没有 JS Native 应用程序 React      更新时间:2023-09-26

我正试图让推送通知在ios React Native应用程序中运行,但已经完成了一半。我遇到的一个问题是,在应用程序再次激活之前,我在应用程序处于后台时显示通知的逻辑不会执行。我正在使用Socket.io并侦听事件,但要处理的代码(比如onChat事件)直到应用程序处于活动状态才运行。我已确认插座仍处于连接状态。

有一件事很奇怪,那就是它在模拟器中工作,但在我的设备上不工作。也许有一些性能优化可以在应用程序被放在后台时停止JS的执行。

当appstate处于后台时,我如何让JS执行?

我所做的是在通过套接字接收到事件并运行时调用一个函数:

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

多亏了这个堆栈溢出问答,我发现代码没有在后台状态下执行,为挂起状态做准备。后台模式是一种过渡状态,用于准备应用程序成为"后台";屏幕截图";。在那之后,套接字只会在很短的一段时间内保持连接,但最终会被终止。

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