有没有办法做反应本地博览会的后台任务?

问题描述 投票:0回答:3

我知道当应用程序在后台时,expo无法执行代码,但我真的需要找到替代方案。当我在后台收到推送通知时,我需要更新我的redux状态。

有没有额外的图书馆可以帮我做这些事情?

react-native react-redux expo
3个回答
0
投票

实际上,在本地反应中是不可能的。

你可以用npm run eject“弹出”你的应用程序(没有回去)。并使用java for android添加本机代码,使用swift for iOS来处理后台任务。


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)
  }
}

```


0
投票

截至2019年4月,世博会确实允许使用他们的TaskManager完成一些后台任务。内置背景任务的两个示例是:

  • 背景地理定位(包括地理围栏):see docs
  • 背景提取:see docs
© www.soinside.com 2019 - 2024. All rights reserved.