@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的版本(默认值:20.0.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>