Saltar al contenido

Geolocalización

GitHubnpmcrates.io
Referencia de API

Obtén y rastrea la posición actual del dispositivo, incluyendo información sobre altitud, rumbo y velocidad (si están disponibles).

Este plugin requiere una versión de Rust de al menos 1.77.2

PlataformaNivelNotas
windows
linux
macos
android
ios

Instala el plugin de geolocalización para comenzar.

Usa el gestor de paquetes de tu proyecto para agregar la dependencia:

npm run tauri add geolocation

Apple requiere que se especifiquen descripciones de privacidad en Info.plist para la información de ubicación, donde debes describir por qué tu aplicación necesita acceder a ella. A continuación se ilustra un ejemplo de descripción:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Required to do XY</string>
</dict>
</plist>

Este plugin añade automáticamente los siguientes permisos a tu archivo AndroidManifest.xml:

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

Si tu aplicación requiere funcionalidad GPS para funcionar, deberías añadir lo siguiente a tu archivo AndroidManifest.xml:

<uses-feature android:name="android.hardware.location.gps" android:required="true" />

Google Play Store utiliza esta propiedad para decidir si debe mostrar la aplicación a dispositivos sin capacidades de GPS.

El plugin de geolocalización está disponible en JavaScript.

import {
checkPermissions,
requestPermissions,
getCurrentPosition,
watchPosition,
} from '@tauri-apps/plugin-geolocation';
let permissions = await checkPermissions();
if (
permissions.location === 'prompt' ||
permissions.location === 'prompt-with-rationale'
) {
permissions = await requestPermissions(['location']);
}
if (permissions.location === 'granted') {
const pos = await getCurrentPosition();
await watchPosition(
{ enableHighAccuracy: true, timeout: 10000, maximumAge: 0 },
(pos) => {
console.log(pos);
}
);
}

De forma predeterminada, todos los comandos y alcances (scopes) potencialmente peligrosos del plugin están bloqueados y no se puede acceder a ellos. Debes modificar los permisos en tu configuración de capabilities para habilitarlos.

Consulta la Visión General de Capacidades para obtener más información y la guía paso a paso para usar permisos de plugins.

src-tauri/capabilities/mobile.json
{
"$schema": "../gen/schemas/mobile-schema.json",
"identifier": "mobile-capability",
"windows": ["main"],
"platforms": ["iOS", "android"],
"permissions": [
"core:default",
"geolocation:allow-check-permissions",
"geolocation:allow-request-permissions",
"geolocation:allow-get-current-position",
"geolocation:allow-watch-position"
]
}

Tabla de Permisos

Identificador Descripción

geolocation:allow-check-permissions

Habilita el comando check_permissions sin ningún alcance preconfigurado.

geolocation:deny-check-permissions

Deniega el comando check_permissions sin ningún alcance preconfigurado.

geolocation:allow-clear-permissions

Habilita el comando clear_permissions sin ningún alcance preconfigurado.

geolocation:deny-clear-permissions

Deniega el comando clear_permissions sin ningún alcance preconfigurado.

geolocation:allow-clear-watch

Habilita el comando clear_watch sin ningún alcance preconfigurado.

geolocation:deny-clear-watch

Deniega el comando clear_watch sin ningún alcance preconfigurado.

geolocation:allow-get-current-position

Habilita el comando get_current_position sin ningún alcance preconfigurado.

geolocation:deny-get-current-position

Deniega el comando get_current_position sin ningún alcance preconfigurado.

geolocation:allow-request-permissions

Habilita el comando request_permissions sin ningún alcance preconfigurado.

geolocation:deny-request-permissions

Deniega el comando request_permissions sin ningún alcance preconfigurado.

geolocation:allow-watch-position

Habilita el comando watch_position sin ningún alcance preconfigurado.

geolocation:deny-watch-position

Deniega el comando watch_position sin ningún alcance preconfigurado.


© 2026 Colaboradores de Tauri. CC-BY / MIT