Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native React Native:当应用程序处于后台时,如何发出HTTP请求?_React Native_Redux Saga - Fatal编程技术网

React native React Native:当应用程序处于后台时,如何发出HTTP请求?

React native React Native:当应用程序处于后台时,如何发出HTTP请求?,react-native,redux-saga,React Native,Redux Saga,为了简化我的问题:我有一个电子商务应用程序,它使用地理围栏来检测何时准备订单: BackgroundGeolocation.onGeofence(geofence => { this.props.prepareOrder(); }); 问题是,prepareOrder()向我的服务器发出HTTP请求。我注意到,在我的应用程序被预支之前,它实际上不会发出请求 有办法解决这个问题吗?当他们进入地理围栏时,我的应用程序很可能是后台的,我需要发出请求 ====== 更

为了简化我的问题:我有一个电子商务应用程序,它使用地理围栏来检测何时准备订单:

    BackgroundGeolocation.onGeofence(geofence => {
      this.props.prepareOrder();
    });
问题是,prepareOrder()向我的服务器发出HTTP请求。我注意到,在我的应用程序被预支之前,它实际上不会发出请求

有办法解决这个问题吗?当他们进入地理围栏时,我的应用程序很可能是后台的,我需要发出请求

======


更复杂的版本在此处:。我使用的是redux传奇,似乎没有调用
yield call
。但我不确定这是redux传奇还是在后台进行HTTP请求的事情。

这里也一样。。。这不是redux传奇的问题,这是在后台工作的ReactNative应用程序的一个更普遍的问题:当应用程序在后台很长一段时间(特别是在iOS屏幕关闭时)时,JS线程似乎被冻结

iOS和android的行为不同,也取决于操作系统的版本。尽管如此,我们正在构建一个需要在前台和后台不断进行地理定位的应用程序,我们尝试使用sagas进行定位,但我们发现它不起作用:我们会在一段时间后停止接收位置。看着我们的日志,我们会发现所有的本地日志也会停止。因此,我们猜测“出于能源原因,可能操作系统停止了所有的本地上下文”

因此,我们将背景代码移到本机:

  • 当应用程序位于iOS上的后台时,在自定义RN本机模块中进行HTTP POST
  • android上的无头JS。 (这似乎也是其他人选择的解决方案,比如)
它起作用了