📅  最后修改于: 2020-12-08 06:13:59             🧑  作者: Mango
在本章中,我们将向您展示如何使用Geolocation 。
import React from 'react'
import GeolocationExample from './geolocation_example.js'
const App = () => {
return (
)
}
export default App
我们将从设置初始状态开始,以保持初始位置和最后位置。
现在,我们需要使用navigator.geolocation.getCurrentPosition来安装组件时获取设备的当前位置。我们将对响应进行字符串化,以便我们更新状态。
navigator.geolocation.watchPosition用于跟踪用户的位置。我们还可以在此步骤中清除观察者。
import React, { Component } from 'react'
import { View, Text, Switch, StyleSheet} from 'react-native'
class SwichExample extends Component {
state = {
initialPosition: 'unknown',
lastPosition: 'unknown',
}
watchID: ?number = null;
componentDidMount = () => {
navigator.geolocation.getCurrentPosition(
(position) => {
const initialPosition = JSON.stringify(position);
this.setState({ initialPosition });
},
(error) => alert(error.message),
{ enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 }
);
this.watchID = navigator.geolocation.watchPosition((position) => {
const lastPosition = JSON.stringify(position);
this.setState({ lastPosition });
});
}
componentWillUnmount = () => {
navigator.geolocation.clearWatch(this.watchID);
}
render() {
return (
Initial position:
{this.state.initialPosition}
Current position:
{this.state.lastPosition}
)
}
}
export default SwichExample
const styles = StyleSheet.create ({
container: {
flex: 1,
alignItems: 'center',
marginTop: 50
},
boldText: {
fontSize: 30,
color: 'red',
}
})