探索无限可能:React Native后台地理定位实战应用
import React, { useEffect, useState } from 'react';
import { StyleSheet, Text, View } from 'react-native';
import * as Location from 'expo-location';
export default function App() {
const [location, setLocation] = useState(null);
const [errorMsg, setErrorMsg] = useState(null);
useEffect(() => {
(async () => {
try {
const { status } = await Location.requestForegroundPermissionsAsync();
if (status !== 'granted') {
setErrorMsg('定位权限被拒绝,无法获取位置信息。');
return;
}
const location = await Location.getCurrentPositionAsync({});
setLocation(location.coords);
} catch (error) {
setErrorMsg('获取位置信息时发生错误。');
}
})();
}, []);
if (errorMsg) {
return <Text style={styles.errorText}>{errorMsg}</Text>;
}
if (!location) {
return <Text>正在获取位置...</Text>;
}
return (
<View style={styles.container}>
<Text style={styles.text}>
纬度: {location.latitude}
</Text>
<Text style={styles.text}>
经度: {location.longitude}
</Text>
{/* 可以添加更多的位置信息 */}
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
padding: 10,
},
text: {
textAlign: 'center',
margin: 10,
},
errorText: {
color: 'red',
textAlign: 'center',
margin: 10,
}
});
这段代码使用React Native和Expo进行地理位置定位,展示了如何请求前台定位权限,获取当前位置并展示纬度和经度。同时,代码中包含了错误处理,当权限被拒绝或获取位置信息出错时,会展示错误信息。这是一个简洁而实用的地理定位示例。
评论已关闭