Store
简单、持久的键值存储。
支持的平台
- Windows
- Linux
- macOS
- Android
- iOS
设置
请安装 store 插件。
使用项目的包管理器来添加依赖。
npm run tauri add store
yarn run tauri add store
pnpm tauri add store
bun tauri add store
cargo tauri add store
- 在你的
Cargo.toml
文件中添加以下内容来安装 store 插件。
[dependencies]tauri-plugin-store = "2.0.0-rc"# 或者使用 GIT:tauri-plugin-store = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" }
- 修改
lib.rs
来初始化插件。
#[cfg_attr(mobile, tauri::mobile_entry_point)]fn run() { tauri::Builder::default() .plugin(tauri_plugin_store::Builder::new().build()) .run(tauri::generate_context!()) .expect("error while running tauri application");}
- 使用你喜欢的 JavaScript 包管理器安装 JavaScript Guest 绑定。
npm install @tauri-apps/plugin-store
yarn add @tauri-apps/plugin-store
pnpm add @tauri-apps/plugin-store
bun add @tauri-apps/plugin-store
用法
import { Store } from '@tauri-apps/plugin-store';
// Store 会在 JavaScript 绑定时自动加载。const store = new Store('store.bin');
// 设置一个值。await store.set('some-key', { value: 5 });
// 获取一个值。const val = await store.get('some-key');console.log(val); // { value: 5 }
// 您可以在进行更改后手动保存存储// 否则如上所述,它将在正常退出时保存。await store.save();
use tauri::Wry;use tauri_plugin_store::{with_store, StoreCollection};use serde_json::json;
#[cfg_attr(mobile, tauri::mobile_entry_point)]pub fn run() { tauri::Builder::default() .plugin(tauri_plugin_store::Builder::default().build()) .setup(|app| { let stores = app.app_handle().state::<StoreCollection<Wry>>(); let path = PathBuf::from("store.bin");
with_store(app.app_handle().clone(), stores, path, |store| { // 注意,值必须是 serde_json::Value 的实例, // 否则,它们将与 JavaScript 绑定不兼容。 store.insert("some-key".to_string(), json!({ "value": 5 }))?;
// 从 Store 中获取一个值。 let value = store.get("some-key").expect("Failed to get value from store"); println!("{}", value); // {"value":5}
// 您可以在进行更改后手动保存存储 // 否则如上所述,它将在正常退出时保存。 store.save()?;
Ok(()) });
Ok(()) }) .run(tauri::generate_context!()) .expect("error while running tauri application");}
权限
默认情况下,所有插件命令都被阻止,无法访问。你必须在你的 capabilities
配置中定义一个权限列表。
更多信息请参见访问控制列表。
{ "$schema": "../gen/schemas/desktop-schema.json", "identifier": "main-capability", "description": "Capability for the main window", "windows": ["main"], "permissions": [ "store:allow-get", "store:allow-set", "store:allow-save", "store:allow-load" ]}
权限 | 描述 |
---|---|
store:allow-clear | 在没有预先配置作用域的情况下,启用 clear 命令。 |
store:deny-clear | 拒绝没有任何预配置范围的 clear 命令。 |
store:allow-delete | 在没有预先配置作用域的情况下,启用 |
store:deny-delete | 拒绝没有任何预配置范围的 delete 命令。 |
store:allow-entries | 在没有预先配置作用域的情况下,启用 entries 命令。 |
store:deny-entries | 拒绝没有任何预配置范围的 entries 命令。 |
store:allow-get | 在没有预先配置作用域的情况下,启用 get 命令。 |
store:deny-get | 拒绝没有任何预配置范围的 get 命令。 |
store:allow-has | 在没有预先配置作用域的情况下,启用 has 命令。 |
store:deny-has | 拒绝没有任何预配置范围的 has 命令。 |
store:allow-keys | 在没有预先配置作用域的情况下,启用 keys 命令。 |
store:deny-keys | 拒绝没有任何预配置范围的 keys 命令。 |
store:allow-length | 在没有预先配置作用域的情况下,启用 length 命令。 |
store:deny-length | 拒绝没有任何预配置范围的 length 命令。 |
store:allow-load | 在没有预先配置作用域的情况下,启用 load 命令。 |
store:deny-load | 拒绝没有任何预配置范围的 load 命令。 |
store:allow-reset | 在没有预先配置作用域的情况下,启用 reset 命令。 |
store:deny-reset | 拒绝没有任何预配置范围的 reset 命令。 |
store:allow-save | 在没有预先配置作用域的情况下,启用 save 命令。 |
store:deny-save | 拒绝没有任何预配置范围的 save 命令。 |
store:allow-set | 在没有预先配置作用域的情况下,启用 set 命令。 |
store:deny-set | 拒绝没有任何预配置范围的 set 命令。 |
store:allow-values | 在没有预先配置作用域的情况下,启用 values 命令。 |
store:deny-values | 拒绝没有任何预配置范围的 values 命令。 |
© 2024 Tauri Contributors. CC-BY / MIT