ユーザーがダイアログで許可したファイルやフォルダへのアクセス権は、通常アプリを終了するとリセットされます。tauri-plugin-persisted-scope を使用すると、これらの許可状態を永続化し、次回起動時にもアクセス可能な状態を維持できます。
前提条件
Permissions (権限) の設定
src-tauri/capabilities/default.json に以下の権限を追加します。
{
"permissions": [
...,
"persisted-scope:default"
]
}
1. セットアップ
このプラグインは Rust 側のみで動作します(フロントエンド用パッケージはありません)。
npm run tauri add persisted-scope
src-tauri/src/lib.rs:
#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
tauri::Builder::default()
.plugin(tauri_plugin_persisted_scope::init())
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
3. 動作
プラグインを有効にするだけで自動的に機能します。
1. tauri-plugin-dialog の open 関数などでユーザーがファイルを選択する。
2. Tauri のスコープ(許可リスト)にそのファイルが追加される。
3. tauri-plugin-persisted-scope がその状態をデータファイルに保存する。
4. 次回起動時、プラグインが保存されたスコープを復元する。
これにより、例えば「最近開いたファイル」機能などを実装する際に、再度ユーザーに許可を求めずにファイルを開くことができます。
注意点
- スコープデータはアプリのデータディレクトリ内の
scope.json(または類似のファイル) に保存されます。 - セキュリティ上の理由から、過度に広い範囲(ホームディレクトリ全体など)を永続化することは避けるべきです(通常ダイアログで単一ファイルを選ぶ分には問題ありません)。