React-Native IOS:Background-Timer 不在后台运行

Posted

技术标签:

【中文标题】React-Native IOS:Background-Timer 不在后台运行【英文标题】:React-Native IOS: Background-Timer doesnt run in the Background 【发布时间】:2020-11-08 22:12:25 【问题描述】:

我正在尝试启动后台计时器。 我想运行代码,它也会在后台为 ios 执行。

我使用 react-native-background-timer库。

但是当我最小化应用程序时,代码不会运行。 我在模拟器以及我的 IOS 设备(调试和发布)上运行该应用程序。 但是应用最小化后代码不运行。

我的代码:

var myTimer;

componentDidMount(): void 
    const time = BackgroundTimer.setInterval(() => 
        Geolocation.getCurrentPosition(
            position => 
                const location = JSON.stringify(position);
                console.log(position.coords.latitude);
                this.setState(
                    location,
                    latitude: position.coords.latitude,
                    longitude: position.coords.longitude
                );
            );
       
  

【问题讨论】:

【参考方案1】:

根据库documentationBackgroundTimer.setInterval 仅用于 android 。如果你需要 Crossplatform 要在 Android 和 iOS 上使用相同的代码,请使用 runBackgroundTimer() 和 stopBackgroundTimer()

BackgroundTimer.runBackgroundTimer(() =>  
//code that will be called every 3 seconds 
, 
3000);
//rest of code will be performing for iOS on background too

BackgroundTimer.stopBackgroundTimer(); //after this call all code on background stop run.

【讨论】:

以上是关于React-Native IOS:Background-Timer 不在后台运行的主要内容,如果未能解决你的问题,请参考以下文章

React-native:如何从 Windows 构建 ios

react-native android/ios 手动/自动 修改版本号

如何在 react-native 中重置 IOS 文件夹

React-Native入门指导之iOS篇 —— 一准备工作

react-native中ios的TextInput下划线颜色

react-native ios中的网页抓取?