- React Native 教程
- React Native - 主页
- 核心概念
- React Native - 概览
- React Native - 环境设置
- React Native - App
- React Native - 状态
- React Native - 属性
- React Native - 样式
- React Native - Flexbox
- React Native - 列表视图 (ListView)
- React Native - 文本输入
- React Native - 滚动视图 (ScrollView)
- React Native - 图像
- React Native - HTTP
- React Native - 按钮
- React Native - 动画
- React Native - 调试
- React Native - 路由
- React Native - 运行 iOS
- React Native - 运行 Android
- 组件和 API
- React Native - 视图 (View)
- React Native - WebView
- React Native - 模态窗口 (Modal)
- React Native - 活动指示器 (ActivityIndicator)
- React Native - 选择器 (Picker)
- React Native - 状态栏 (StatusBar)
- React Native - 开关 (Switch)
- React Native - 文本 (Text)
- React Native - 警告 (Alert)
- React Native - 地理定位
- React Native - 异步存储 (AsyncStorage)
- React Native 实用资源
- React Native - 快速指南
- React Native - 实用资源
- React Native - 讨论
React Native - 地理定位
在本节中,我们将展示如何使用 地理定位。
步骤 1:App.js
import React from 'react'
import GeolocationExample from './geolocation_example.js'
const App = () => {
return (
<GeolocationExample />
)
}
export default App
步骤 2:地理定位
首先,我们将设置一个初始状态,用于保存初始位置和最终位置。
现在,我们使用 navigator.geolocation.getCurrentPosition 在组件挂载时获取设备当前的位置。我们将字符串化响应,以便更新状态。
navigator.geolocation.watchPosition 用于跟踪用户位置。我们还将在此步骤中清除观察者。
AsyncStorageExample.js
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 (
<View style = {styles.container}>
<Text style = {styles.boldText}>
Initial position:
</Text>
<Text>
{this.state.initialPosition}
</Text>
<Text style = {styles.boldText}>
Current position:
</Text>
<Text>
{this.state.lastPosition}
</Text>
</View>
)
}
}
export default SwichExample
const styles = StyleSheet.create ({
container: {
flex: 1,
alignItems: 'center',
marginTop: 50
},
boldText: {
fontSize: 30,
color: 'red',
}
})
广告