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篇 —— 一准备工作