React Native:如何检查是否已授予地理位置许可

时间:2018-12-04 17:07:22

标签: react-native permissions react-native-ios

我知道我可以使用React Native这样在iOS上请求地理定位权限:

await navigator.geolocation.requestAuthorization()

但是,如何知道用户是否已授予许可?上面的函数不返回任何内容。

我想避免仅使用第三方库来执行此操作,如以下答案所示: Determining if geolocation enabled with react native

最受欢迎的Permissions 3rd party库在10个月内没有更新,并且不支持最新版本的React Native。

1 个答案:

答案 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:");

起到了作用。