【问题标题】:Real time permission in React NativeReact Native 中的实时权限
【发布时间】:2018-10-08 11:46:57
【问题描述】:

我是新来的原生反应。我想请求 Location 的实时权限。请帮助我如何在 react native 中获取实时权限。

【问题讨论】:

  • 你在用expo吗?
  • 不,我在真实设备上测试

标签: react-native react-native-android


【解决方案1】:

看看这个库:react-native-permissions

【讨论】:

    【解决方案2】:

    最好避免使用库进行权限检查

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    

    重要 - 在清单文件中包含上述代码行

     import { PermissionsAndroid, Platform } from 'react-native';
    
      componentDidMount() {
           if (Platform.OS === 'android') {
                  this.requestLocationPermission(); // function call
             }
       }
    

    code 下方包含 function 正文。

      async requestLocationPermission() {
         try {
           const granted = await PermissionsAndroid.request(
            PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION
          );
          if (granted === PermissionsAndroid.RESULTS.GRANTED || granted === true) 
           {
              // WHAT TODO WHEN PERMISSION IS GRANTED
           } else {
             // WHAT TODO WHEN PERMISSION IS NOT GRANTED
          }
        } catch (err) {
          log(err);
        }
      }
    

    【讨论】:

    • 我必须在 render() 中调用这个方法吗?
    • 更新了..这是一个平台检查功能真的没有必要
    【解决方案3】:

    如果您只需要访问位置,react-native-permissions 可能会过大。 React Native 似乎有自己的 API:RN geolocation

    import {geolocation } from "react-native";
    
    // ...
    
    geolocation.requestAuthorization()
    

    iOS 所需的权限取决于您的 plist 中有哪些键。对于android,我猜你无事可做

    【讨论】:

      【解决方案4】:

      小心地理位置现在贬值了。你最好使用 Amal 的解决方案。

      import {geolocation } from "react-native";
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-02
        • 1970-01-01
        • 2017-04-17
        • 1970-01-01
        • 1970-01-01
        • 2018-07-18
        • 2021-12-04
        • 1970-01-01
        相关资源
        最近更新 更多