gpt4 book ai didi

react-native - react native : How to make HTTP request when app is backgrounded?

转载 作者:行者123 更新时间:2023-12-02 04:36:30 25 4
gpt4 key购买 nike

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

    BackgroundGeolocation.onGeofence(geofence => {
this.props.prepareOrder();
});

问题是,prepareOrder() 向我的服务器发出 HTTP 请求。我注意到它实际上并没有发出请求,直到我的应用程序被置于前台。

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

======

更复杂的版本在这里:https://github.com/redux-saga/redux-saga/issues/816 .我正在使用 redux-sagas,它似乎没有调用 yield call。但我不确定这是 redux-saga 的问题还是在后台发出 HTTP 请求的问题。

最佳答案

这里也一样...这不是 redux-saga 问题,这是在后台运行的 ReactNative 应用程序的一个更普遍的问题:当应用程序在后台运行很长时间时,JS 线程似乎被卡住(尤其是在 iOS 上,当屏幕已关闭)

iOS 和 android 之间的行为不同,并且还取决于操作系统版本。尽管如此,我们正在构建一个需要在前台和后台进行持续地理定位的应用程序,我们尝试使用 sagas 来做,但我们发现它不起作用:一段时间后我们将停止接收位置。查看我们的日志,我们会发现我们拥有的所有 ReactNative 日志也会停止。因此,我们疯狂地猜测“也许操作系统出于能量原因停止了所有 ReactNative 上下文

所以我们把我们的后台代码移到了原生:

它有效!

关于react-native - react native : How to make HTTP request when app is backgrounded?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42164070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com