我知道我可以使用React Native这样在iOS上请求地理定位权限:
await navigator.geolocation.requestAuthorization()
但是,如何知道用户是否已授予许可?上面的函数不返回任何内容。
我想避免仅使用第三方库来执行此操作,如以下答案所示: Determining if geolocation enabled with react native
最受欢迎的Permissions 3rd party库在10个月内没有更新,并且不支持最新版本的React Native。
答案 0 :(得分:0)
这就是我所能想到的:https://snack.expo.io/@zvona/geolocation-permissions
因此,该函数将如下所示:
checkPermission = () => {
navigator.geolocation
.getCurrentPosition(
() => this.setState({permission: 'GRANTED'}),
() => this.setState({permission: 'DENIED'})
);
}
这可以在某些动作中调用,例如在componentDidMount
中。
如果您需要重定向用户以允许访问设置中的位置,请参见我的另一个示例:https://snack.expo.io/@zvona/open-app-settings,其中代码行:
Linking.openURL("app-settings:");
起到了作用。