在线文档教程
React native

Geolocation

Geolocation

Geolocation API扩展了Web规范:https//developer.mozilla.org/en-US/docs/Web/API/Geolocation

作为浏览器的polyfill,这个API可以通过navigator.geolocation全局使用 - 你不需要import它。

配置和权限

只有原生代码的项目

本部分仅适用于react-native init使用Create React Native App创建的项目或已经退出的项目。有关弹出的更多信息,请参阅创建React Native App存储库的指南。

iOS

您需要NSLocationWhenInUseUsageDescription在Info.plist中包含密钥才能在使用该应用时启用地理位置。当您使用创建项目时,默认情况下启用地理定位react-native init

为了在后台启用地理位置,您需要在Info.plist中包含'NSLocationAlwaysUsageDescription'键,并在Xcode的'功能'选项卡中添加位置作为背景模式。

Android

要请求访问位置,您需要将以下行添加到您的应用AndroidManifest.xml

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

Android API> = 18位置还将包含一个mocked布尔值,以指示位置是否是从模拟提供者创建的。

方法

static setRNConfiguration(config)

设置将在所有位置请求中使用的配置选项。

选项

iOS

  • skipPermissionRequests- 默认为false,如果true您在使用Geolocation API之前必须请求权限。

static requestAuthorization()

根据pList上配置的密钥请求合适的位置权限。如果设置了NSLocationAlwaysUsageDescription,它将请求总是授权,但如果设置NSLocationWhenInUseUsageDescription,它将请求InUse授权。

static getCurrentPosition(geo_success, geo_error?, geo_options?)

用最新的位置信息调用一次成功回调。支持的选项:timeout(ms),maximumAge(ms),enableHighAccuracy(bool)在Android上,如果位置被缓存,可以立即返回,或者它会请求更新,这可能需要一段时间。

static watchPosition(success, error?, options?)

每当位置发生变化时调用成功回调。支持的选项:timeout(ms),maximumAge(ms),enableHighAccuracy(bool),distanceFilter(m),useSignificantChanges(bool)

static clearWatch(watchID)

static stopObserving()