React Native:如何检查用户是否已授予gps权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React Native:如何检查用户是否已授予gps权限相关的知识,希望对你有一定的参考价值。

ios中,我正在检查应用程序是否有权在打开应用程序时访问gps。如果没有,我会显示取消或接受的提醒,这会打开设置菜单。但是,一旦用户在设置菜单中打开/关闭gps并返回应用程序,我找不到检查方法。我想等待用户从设置中返回并再次检查。

我正在使用navigator.geolocation.getCurrentPosition()Permissions.request("location")if (Permissions.canOpenSettings()){ Permissions.openSettings()...

答案

您可以使用AppState并在应用程序再次处于活动状态时添加侦听器,以检查是否拒绝该权限。

  componentDidMount() {
    AppState.addEventListener('change', this._handleAppStateChange);
  }

  componentWillUnmount() {
    AppState.removeEventListener('change', this._handleAppStateChange);
  }

  _handleAppStateChange = (nextAppState) => {
    //Check permission here
  };
另一答案

我找到了一种解决方法,它不会在用户返回时检查它,但是在设置窗口打开时立即打开警报,所以当他回去时他必须单击确定并再次检查它:

componentDidMount() {
    this.checkPermissions();
  }

checkPermissions(){
    Permissions.check("location").then(resp => { // if resp === "denied" alert to open settings }
}

openSettings(){if (Permissions.canOpenSettings()) {
      Permissions.openSettings().then(this.renderReloadAlert());
    }}

renderReloadAlert() {
    const s = strings.initial;
    Alert.alert(
      s.alertReloadTitle,
      s.alertReloadBody,
      [
        {
          text: s.alertReloadOk,
          onPress: () => this.checkPermissions()
        }
      ],
      { cancelable: false }
    );
  }

以上是关于React Native:如何检查用户是否已授予gps权限的主要内容,如果未能解决你的问题,请参考以下文章

React Native:如何检查是不是已授予地理定位权限

ReactNative:如何检查用户是不是已授予 gps 权限

如何检查用户是不是已授予我的 PHP 应用程序的特定权限集?

如何让用户选中一个框以授予权限,而不是用户在 React-Native 中的警报上单击确定?

无法使用react-native app中的redux-persist检查索引/主文件上是否已加载持久状态

Appstate 不断在 Android 中的 React Native 中获得变化