我想获取我的位置坐标,甚至在应用关闭时也可以。我该怎么做?
我使用下面的代码每隔1秒获取一次我的位置坐标,但是它总是给我相同的坐标。我不知道为什么它不更新。
即使这是可行的,当应用关闭时我也无法获得坐标。对这个有什么想法吗?
我是这样做的:
componentDidMount() {
this.interval = setInterval(() => {
navigator.geolocation.getCurrentPosition((position) => {
var lat = parseFloat(position.coords.latitude);
var lng = parseFloat(position.coords.longitude);
console.log("lat :",lat);
console.log("lng :",lng);
this.setState({position1: lat, position2: lng});
},
error => Alert.alert(error.message),
{ enableHighAccuracy: true, timeout: 30000, maximumAge: 1000 }
);
}, 1000);
}
componentWillUnmount() {
clearInterval(this.interval);
}
答案 0 :(得分:1)
如果应用程序在后台或进入前台,则您可能想利用AppState api和removeSecond :: (Eq a) -> [a] -> [a]
removeSecond = go False
where go _ _ [] = []
go True needle (x:xs) | needle == x = xs
| otherwise = x : go True needle xs
go False needle (x:xs) | needle == x = x : go True needle xs
| otherwise = x : go False needle xs
的优势来进行位置更改。如果该应用程序已关闭,我不确定如果该应用程序已关闭,react native是否会直接在API监视位置。但是,您可以使用react-native-queue来执行此操作。您可能想看看https://github.com/billmalarky/react-native-queue#os-background-task-full-example。