3个版本

2.0.0-rc.2 2024年8月20日
2.0.0-rc.12024年8月17日
2.0.0-rc.02024年8月2日

#238 in 硬件支持

Download history 92/week @ 2024-07-31 10/week @ 2024-08-07 215/week @ 2024-08-14

317 每月下载量

Apache-2.0 OR MIT

60KB
1K SLoC

Kotlin 380 SLoC // 0.1% comments Rust 337 SLoC // 0.2% comments Swift 212 SLoC // 0.1% comments TypeScript 176 SLoC // 0.3% comments Prolog 18 SLoC JavaScript 3 SLoC // 0.5% comments

geolocation

此插件提供获取和跟踪设备当前位置的API,包括关于高度、方向和速度(如有)的信息。

安装

此插件需要至少Rust版本 1.75

我们推荐三种一般的安装方法。

  1. 使用crates.io和npm(最简单,需要您信任我们的发布管道已正常工作)
  2. 直接从Github使用git标签/修订哈希提取源代码(最安全)
  3. 使用Git子模块将此仓库安装到您的tauri项目中,然后使用文件协议导入源代码(最安全,但使用不便)

通过将以下内容添加到您的 Cargo.toml 文件中安装核心插件

src-tauri/Cargo.toml

[dependencies]
tauri-plugin-geolocation = "2.0.0-rc"
# alternatively with Git:
tauri-plugin-geolocation = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" }

您可以使用您首选的JavaScript包管理器安装JavaScript Guest绑定

注意:由于大多数JavaScript包管理器无法从git monorepos安装包,我们为每个插件提供了只读镜像。这使得安装选项2更易于使用。

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

设置

iOS

苹果要求在 Info.plist 中指定隐私描述,以获取位置信息

  • NSLocationWhenInUseDescription

Android

此插件会自动将以下权限添加到您的 AndroidManifest.xml 文件中

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

如果您的应用程序需要GPS功能才能运行,应该在您的 AndroidManifest.xml 文件中添加以下内容

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

Google Play 商店使用此属性来决定是否向没有GPS功能的设备展示应用程序。

使用方法

首先您需要使用 Tauri 注册核心插件

src-tauri/src/main.rs

fn main() {
    tauri::Builder::default()
        .plugin(tauri_plugin_geolocation::init())
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

之后所有插件API都可通过 JavaScript 客户端绑定使用

import { getCurrentPosition, watchPosition } from "@tauri-apps/plugin-log";

const pos = await getCurrentPosition();

await watchPosition(
  { enableHighAccuracy: true, timeout: 10000, maximumAge: 0 },
  (pos) => {
    console.log(pos);
  }
);

贡献

接受PR。在提交拉取请求之前,请务必阅读贡献指南。

贡献者

CrabNebula Rescue.co

合作伙伴

CrabNebula

有关赞助商的完整列表,请访问我们的网站Open Collective

许可证

代码:版权所有 © 2015 - 现在 - The Commons Conservancy 下的 Tauri 项目。

适用于适用情况下的 MIT 或 MIT/Apache 2.0。

依赖项

~17–62MB
~1M SLoC