@capacitor/geolocation
Geolocation API 提供了简便的方法,通过 GPS 获取和追踪设备的当前位置,并在可用时提供海拔、朝向和速度等信息。
安装
npm install @capacitor/geolocation
npx cap sync
iOS
Apple 要求在 Info.plist 中为位置信息指定隐私描述:
NSLocationAlwaysUsageDescription(Privacy - Location Always Usage Description)NSLocationWhenInUseUsageDescription(Privacy - Location When In Use Usage Description)
请阅读 iOS 指南 中的 配置 Info.plist 部分,了解更多关于在 Xcode 中设置 iOS 权限的信息。
Android
此 API 需要将以下权限添加到你的 AndroidManifest.xml 文件中:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-feature android:name="android.hardware.location.gps" />
前两个权限用于请求位置数据,包括粗略和精确位置。最后一行是可选的,但如果你应用 必须 使用 GPS 才能运行,则是必需的。你也可以省略它,但请注意,这可能会导致你的应用安装在缺乏 GPS 硬件的设备上。
请阅读 Android 指南 中的 设置权限 部分,了解更多关于设置 Android 权限的信息。
变量
此插件将使用以下项目变量(定义在应用中的 variables.gradle 文件中):
$playServicesLocationVersion版本com.google.android.gms:play-services-location(默认:17.1.0)
示例
import { Geolocation } from '@capacitor/geolocation';
const printCurrentPosition = async () => {
const coordinates = await Geolocation.getCurrentPosition();
console.log('Current position:', coordinates);
};
API
getCurrentPosition(...)
getCurrentPosition(options?: PositionOptions | undefined) => Promise<Position>
获取设备当前的 GPS 位置
| 参数 | 类型 |
|---|---|
options | |
返回值:
Promise<Position>
自: 1.0.0
watchPosition(...)
watchPosition(options: PositionOptions, callback: WatchPositionCallback) => Promise<CallbackID>
设置一个监听器来监听位置变化。请注意,监听位置变化可能会消耗大量电量。请仅在需要时智能地开启监听。
| 参数 | 类型 |
|---|---|
options | |
callback | |
返回值: Promise<string>
自: 1.0.0
clearWatch(...)
clearWatch(options: ClearWatchOptions) => Promise<void>
清除指定的监听
| 参数 | 类型 |
|---|---|
options | |
自: 1.0.0
checkPermissions()
checkPermissions() => Promise<PermissionStatus>
检查位置权限
返回值:
Promise<PermissionStatus>
自: 1.0.0
requestPermissions(...)
requestPermissions(permissions?: GeolocationPluginPermissions | undefined) => Promise<PermissionStatus>
请求位置权限
| 参数 | 类型 |
|---|---|
permissions | |
返回值:
Promise<PermissionStatus>
自: 1.0.0
接口
Position
| 属性 | 类型 | 描述 | 自 |
|---|---|---|---|
timestamp | number | 坐标的创建时间戳 | 1.0.0 |
coords | { latitude: number; longitude: number; accuracy: number; altitudeAccuracy: number | null; altitude: number | null; speed: number | null; heading: number | null; } |