웹 서비스에는 카카오 지도로 현재 내 위치를 찾아 그곳으로 지도 화면 중앙을 옮겨주는 서비스가 존재한다. 이걸 어플 내에서 구현을 해야하는데, expo에서 기기의 위치 정보 권한을 받아 이를 구현하는 부분까지 진행해보려 한다.
이전에는 'expo-permissions'라는 라이브러리로 카메라, 위치, 저장소 등 모든 권한을 받는 기능을 통합해서 사용했었는데, 이제는 각각의 라이브러리로 쪼개졌다.
그러나 함수의 사용 등 큰 틀은 크게 바뀌지 않은 것 같다.
(이거 때문에 또 레퍼런스를 잘못 찾아 이래저래 많이 헤맸다...)
// App.jsx
import * as Location from 'expo-location';
export default function App() {
const requestLocationPermission = async () => {
let { status } = await Location.requestForegroundPermissionsAsync();
if (status === 'granted') {
} else {
console.error("Location permission not granted");
}
};
const onNavigationStateChange = async (navState) => {
if (navState.url === "지도페이지 url") {
await requestLocationPermission();
}
};
return (
<View style={styles.container}>
<StatusBar />
<WebView
geolocationEnabled={true}
source={{ uri: "서비스" }}
ref={webViewRef}
onNavigationStateChange={onNavigationStateChange}
/>
</View>
);
}