代码之家  ›  专栏  ›  技术社区  ›  xRobot

如何在React Native中请求位置许可?

  •  2
  • xRobot  · 技术社区  · 7 年前

    我正在开发一个简单的应用程序,显示您当前的位置(纬度和经度)。我正在使用以下功能:

    - navigator.geolocation.getCurrentPosition
    - navigator.geolocation.watchPosition
    

    但我注意到,权限是在未向用户请求权限的情况下授予的。

    3 回复  |  直到 7 年前
        1
  •  3
  •   Community CDub    5 年前

    docs

    如果设备正在运行 targetSdkVersion是23 或更高版本,用户在安装时不会收到任何应用程序权限的通知。你的应用程序必须请求用户授予 .

    如果设备正在运行 或更低,或应用程序的 或更低的版本运行时,系统 要求用户授予所有 .

    要手动授予权限,必须使用 权限和roid 在本节中提到的每个请求之前 link

    try {
        const granted = await PermissionsAndroid.request(
          PermissionsAndroid.PERMISSIONS.CAMERA,
          {
            'title': 'Cool Photo App Camera Permission',
            'message': 'Cool Photo App needs access to your camera ' +
                       'so you can take awesome pictures.'
          }
        )
        if (granted === PermissionsAndroid.RESULTS.GRANTED) {
          console.log("You can use the camera")
        } else {
          console.log("Camera permission denied")
        }
      } catch (err) {
        console.warn(err)
      }
    

    名单 危险权限 here

        2
  •  4
  •   HungrySoul    7 年前

    对于android,您可以通过从“react native”导入来使用PermissionAndroid。

    签出这个 link 更多信息。

        3
  •  2
  •   Kedarnag Mukanahallipatna    7 年前

    我认为您应该考虑使用react本机权限来执行此操作

    Permissions.request('location', { type: 'always' }).then(response => {
      this.setState({ locationPermission: response })
    })
    
    推荐文章