【问题标题】:Background fetch, testing problems后台抓取,测试问题
【发布时间】:2017-10-15 20:53:45
【问题描述】:

我有一个 react-native 应用程序,其中包括使用 react-native-background-fetchreact-native-background-task。我将一个作业配置为 console.log 在它运行时记录一条简单的消息。我知道后台提取无法在模拟器上运行,但您可以通过进入Debug -> Simulate background fetch 对其进行测试。当我点击这个时,应用程序进入后台。我没有得到任何输出。我在 Info.plis 中启用了后台提取,并且当我检查库函数时代码返回 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 />
  );
}}

导出默认应用;

当我使用真实设备模拟后台获取时,我收到 the same breakpoint

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

【问题讨论】:

  • Xcode 菜单 > 调试 > 模拟后台获取
  • @Desdenova 这就是我正在做的,你读了吗?
  • 显然不是 :) 抱歉

标签: ios react-native background-fetch


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    由于您提到您也尝试写入存储 - 这不起作用 - 我更新的答案是:当您运行后台提取时,您可以同时访问可以查看的服务器日志。这样,您就可以判断后台提取是否成功运行。

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

    【讨论】:

    • 我编辑问题。我也尝试使用存储,但模拟后台获取后没有结果。我什至将它安装在设备上并让它运行了一段时间,但存储没有更新
    • 当我所做的只是运行一个后台任务来设置一个虚拟字符串来存储或打印输出时,这如何导致缩小可能的问题?它根本不运行任务并抛出我添加到问题中的异常。
    • 因为现在您可以将日志发送到某个服务器。取决于你的想象力来解决一个问题
    猜你喜欢
    • 1970-01-01
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 2021-07-16
    • 2011-09-17
    • 2018-10-12
    相关资源
    最近更新 更多