后台抓取,测试问题

Background fetch, testing problems

我有一个包含 react-native-background-task which uses react-native-background-fetch 的本机反应应用程序。我将作业配置为在运行时 console.log 一条简单消息。我知道后台获取在模拟器上不起作用,但你可以通过进入 Debug -> Simulate background fetch 来测试它。当我点击它时,应用程序进入后台。我没有得到任何输出。当我检查库函数时,我在 Info.plis 和代码 returns status.available 中启用了后台获取。 你如何实际测试这个?

Xcode 8.3.3
react-native 0.44.0
react-native-background-fetch 2.0.8 
react-native-background-task 0.2.1



class App extends Component {
componentWillMount() {
  BackgroundTaks.define(() => {
    console.log('==================FETCH==================');
    console.log('task running');
    console.log('====================================');

    BackgroundTaks.finish();
  });
}

componentDidMount() {
  BackgroundTaks.schedule();
}

render() {
  return (
    <Router />
  );
}}

导出默认应用;

当我使用真实设备模拟后台获取时,我得到

libsystem_kernel.dylib`mach_msg_trap:
    0x186e9721c <+0>: mov    x16, #-0x1f
    0x186e97220 <+4>: svc    #0x80
->  0x186e97224 <+8>: ret 

既然你已经提到你也尝试过写入存储 - 但这是行不通的 - 我更新的答案是:当你在 运行 后台获取时,你可以同时点击您可以在其上查看日志的服务器。这样,您就可以判断后台提取是否成功运行。

我创建了一个可破解的 localTestingServer,您可以分叉并立即开始使用。

已解决。最后我意识到项目设置中没有选中后台获取复选框。检查后确实有效。