반응형
react native native로 Geolocation 활성화 여부 확인
RN으로 앱을 구축하여 사용자 위치를 수신할 때 다음을 사용한다.
navigator.geolocation.getCurrentPosition(
(position) => {
//do stuff with location
},
(error) => {
//error or locaiton not allowed
},
{enableHighAccuracy: true, timeout: 20000, maximumAge: 1000}
);
이는 즉시 사용자가 지리 위치 권한을 수락하도록 조회를 불러 일으킨다.내가 지금 달성하고자 하는 것은 사용자가 해당 권한을 수락하기 위해 버튼을 클릭하도록 하기 전에 명시적인 화면을 갖는 것이다.그 곳에 도착하기 위해서는, 나는 그가 그 허가들을 이전에 받아들였는지 아닌지 확인할 방법이 필요하다.이를 스토리지에 캐슁하는 것은 좋지 않은 해결책이 될 수 있다. 사용자가 설정에서 사용 권한을 변경하면 동기화되지 않을 수 있다.
권한 경고를 트리거하지 않고 사용자가 Geolocation 권한을 수락했는지 확인하는 방법
이 라이브러리 https://github.com/yonahforst/react-native-permissions을 사용하여 사용자가 위치 권한을 수락했는지 확인할 수 있다.다음과 같은 경우:
Permissions.getPermissionStatus('location')
.then(response => {
this.setState({ locationPermission: response })
})
react-reason-reason-reason의 v2.x.x에서(https://github.com/react-native-community/react-native-permissions)
import { Platform } from "react-native";
import { PERMISSIONS, request } from "react-native-permissions";
import * as Geolocation from "@react-native-community/geolocation";
try {
request(
Platform.select({
android: PERMISSIONS.ANDROID.ACCESS_FINE_LOCATION,
ios: PERMISSIONS.IOS.LOCATION_WHEN_IN_USE
})
).then(res => {
if (res == "granted") {
Geolocation.getCurrentPosition( // do location staffs);
Geolocation.watchPosition( // do watch location staffs );
} else {
// console.log("Location is not enabled");
}
});
} catch (error) {
console.log("location set error:", error);
}
참조URL: https://stackoverflow.com/questions/38371987/determining-if-geolocation-enabled-with-react-native
반응형
'Programing' 카테고리의 다른 글
사용자가 브라우저를 다시 누른 후 마운트된 Vuejs를 트리거하지 않음 (0) | 2022.03.08 |
---|---|
Python 3에서 필터, 맵 및 축소 사용 방법 (0) | 2022.03.08 |
하위 구성 요소가 스토어에 액세스할 수 있어야 하는가? (0) | 2022.03.08 |
Vue 동작의 모든 예외 포착 (0) | 2022.03.08 |
Vue 구성 요소 소품에 대한 기본값 및 사용자가 프로펠러를 설정하지 않았는지 확인하는 방법 (0) | 2022.03.08 |