我正在尝试将 notify 添加到基本的 Tauri 应用程序。通知观察者似乎在 Tauri 设置之外工作 (
watcher1
) 但不在 Tauri 设置内 (watcher2
)。
use notify::{RecursiveMode, Result, Watcher};
use std::path::Path;
fn main() -> Result<()> {
let mut watcher1 = notify::recommended_watcher(move |res| match res {
Ok(event) => {
// does get printed
println!("watcher1 event: {:?}", event);
}
Err(e) => println!("watch error: {:?}", e),
})
.expect("error creating file watcher");
watcher1
.watch(Path::new("."), RecursiveMode::Recursive)
.expect("error watching folder");
tauri::Builder::default()
.setup(|_app| {
let mut watcher2 = notify::recommended_watcher(move |res| match res {
Ok(event) => {
// does not get printed
println!("watcher2 event: {:?}", event);
}
Err(e) => println!("watch error: {:?}", e),
})
.expect("error creating file watcher");
watcher2
.watch(Path::new("."), RecursiveMode::Recursive)
.expect("error watching folder");
Ok(())
})
.run(tauri::generate_context!())
.expect("error while running tauri builder");
Ok(())
}
您可以在此处获取完整代码:https://github.com/kasbah/tauri-notify。您应该能够克隆它并运行
yarn && yarn tauri dev
,然后进入src-tauri
并更改一些文件,例如touch random-file && rm random-file
.
watcher1
,但我仍然没有看到任何watcher2
事件,所以它们似乎没有相互冲突。println!("watcher2: {:?}", watcher2);
它似乎创建好了。