| Crates.io | tauri-plugin-geolocation |
| lib.rs | tauri-plugin-geolocation |
| version | 2.3.0 |
| created_at | 2024-08-02 15:13:06.82141+00 |
| updated_at | 2025-06-25 14:34:17.981352+00 |
| description | Get and track the device's current position |
| homepage | |
| repository | https://github.com/tauri-apps/plugins-workspace |
| max_upload_size | |
| id | 1323345 |
| size | 219,612 |

This plugin provides APIs for getting and tracking the device's current position, including information about altitude, heading, and speed (if available).
| Platform | Supported |
|---|---|
| Linux | x |
| Windows | x |
| macOS | x |
| Android | ✓ |
| iOS | ✓ |
This plugin requires a Rust version of at least 1.77.2
There are three general methods of installation that we can recommend.
Install the Core plugin by adding the following to your Cargo.toml file:
src-tauri/Cargo.toml
[dependencies]
tauri-plugin-geolocation = "2.0.0"
# alternatively with Git:
tauri-plugin-geolocation = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" }
You can install the JavaScript Guest bindings using your preferred JavaScript package manager:
Note: Since most JavaScript package managers are unable to install packages from git monorepos we provide read-only mirrors of each plugin. This makes installation option 2 more ergonomic to use.
pnpm add @tauri-apps/plugin-geolocation
# or
npm add @tauri-apps/plugin-geolocation
# or
yarn add @tauri-apps/plugin-geolocation
# alternatively with Git:
pnpm add https://github.com/tauri-apps/tauri-plugin-geolocation#v2
# or
npm add https://github.com/tauri-apps/tauri-plugin-geolocation#v2
# or
yarn add https://github.com/tauri-apps/tauri-plugin-geolocation#v2
Apple requires privacy descriptions to be specified in Info.plist for location information:
NSLocationWhenInUseDescriptionThis plugin automatically adds the following permissions to your AndroidManifest.xml file:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
If your app requires GPS functionality to function, you should add the following to your AndroidManifest.xml file:
<uses-feature android:name="android.hardware.location.gps" android:required="true" />
The Google Play Store uses this property to decide whether it should show the app to devices without GPS capabilities.
First you need to register the core plugin with Tauri:
src-tauri/src/lib.rs
fn main() {
tauri::Builder::default()
.plugin(tauri_plugin_geolocation::init())
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
Then, for instance, grant the plugin the permission to check or request permissions from the user and to read the device position
src-tauri/capabilities/default.json
"permissions": [
"core:default",
"geolocation:allow-check-permissions",
"geolocation:allow-request-permissions",
"geolocation:allow-get-current-position",
"geolocation:allow-watch-position",
]
Afterwards all the plugin's APIs are available through the JavaScript guest bindings:
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)
}
)
}
PRs accepted. Please make sure to read the Contributing Guide before making a pull request.
|
|
|
|
|
For the complete list of sponsors please visit our website and Open Collective.
Code: (c) 2015 - Present - The Tauri Programme within The Commons Conservancy.
MIT or MIT/Apache 2.0 where applicable.