Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
React native 如何在react native中实现自动检测用户位置_React Native_Geolocation_React Native Android_React Native Ios_Google Location Services - Fatal编程技术网

React native 如何在react native中实现自动检测用户位置

React native 如何在react native中实现自动检测用户位置,react-native,geolocation,react-native-android,react-native-ios,google-location-services,React Native,Geolocation,React Native Android,React Native Ios,Google Location Services,我正在尝试使用地理定位API在react native中实现自动检测用户位置功能,但是如果位置服务被禁用,它不像在各种android应用程序中那样要求用户激活它,在这些应用程序中,它要求用户使用谷歌定位服务激活它,然后获取用户的位置 任何人都可以建议,我如何实现此功能。对于ios和android,还有什么方法可以做到这一点吗?您可以使用它轻松地在ios和android上请求位置权限。如果您只需要自动检测地理位置,那么更好、最简单的方法是使用“navigator.geolocation”。您可以获

我正在尝试使用地理定位API在react native中实现自动检测用户位置功能,但是如果位置服务被禁用,它不像在各种android应用程序中那样要求用户激活它,在这些应用程序中,它要求用户使用谷歌定位服务激活它,然后获取用户的位置


任何人都可以建议,我如何实现此功能。对于ios和android,还有什么方法可以做到这一点吗?

您可以使用它轻松地在ios和android上请求位置权限。

如果您只需要自动检测地理位置,那么更好、最简单的方法是使用
“navigator.geolocation”
。您可以获取有关其用法的更多详细信息,以获取基于浏览器的API的位置

您甚至不需要导入,因为它已被浏览器继承。您可以直接在类内使用:

class className extends Component {


  state = {
    initialPosition: 'unknown',
    lastPosition: 'unknown',
 }

   watchID: ? number = null;
   componentDidMount = () => {
      navigator.geolocation.getCurrentPosition(
         (position) => {
            const initialPosition = JSON.stringify(position);
            this.setState({ initialPosition });
         },
         (error) => alert(error.message),
         { enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 }
      );
      this.watchID = navigator.geolocation.watchPosition((position) => {
         const lastPosition = JSON.stringify(position);
         this.setState({ lastPosition });
      });
   }
   componentWillUnmount = () => {
      navigator.geolocation.clearWatch(this.watchID);
   }
}