我知道expo在后台运行时无法执行代码,但我确实需要找到替代方法。当我在后台收到推送通知时,我需要更新Redux状态。
有没有其他库可以帮助我完成此类工作?
答案 0 :(得分:0)
实际上,在本机反应中是不可能的。
您可以使用npm run eject
“弹出”您的应用程序(没有后退)。并使用Java(适用于Android)和Swift(适用于iOS)添加本地代码来处理后台任务。
答案 1 :(得分:0)
这可能是一个解决方案:https://medium.com/@inkdrop/a-simple-way-to-run-js-in-background-thread-on-react-native-8fff345576da
```
import React, { Component } from 'react'
import { WebView } from 'react-native'
export default class BackgroundTaskRunner extends Component {
render() {
return (
<WebView
ref={el => this.webView = el}
source={{html: '<html><body></body></html>'}}
onMessage={this.handleMessage}
/>
)
}
runJSInBackground (code) {
this.webView.injectJavaScript(code)
}
handleMessage = (e) => {
const message = e.nativeEvent.data
console.log('message from webview:', message)
}
}
```
答案 2 :(得分:0)
截至2019年4月,世博会确实允许使用其TaskManager完成一些后台任务。内置后台任务的两个示例是: