diff --git a/src-tauri/src/app/invoke.rs b/src-tauri/src/app/invoke.rs index 916c195..bb05733 100644 --- a/src-tauri/src/app/invoke.rs +++ b/src-tauri/src/app/invoke.rs @@ -1,3 +1,4 @@ +use std::fs; use tauri::{api, command, AppHandle, Manager}; #[command] @@ -19,3 +20,9 @@ pub fn fullscreen(app: AppHandle) { pub fn open_browser(app: AppHandle, url: String) { api::shell::open(&app.shell_scope(), url, None).unwrap(); } + +#[command] +pub fn download(_app: AppHandle, name: String, blob: Vec) { + let path = api::path::download_dir().unwrap().join(name); + fs::write(&path, blob).unwrap(); +} diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 30a7da0..238a342 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -7,7 +7,7 @@ mod app; mod util; use app::{invoke, menu, window}; -use invoke::{drag_window, fullscreen, open_browser}; +use invoke::{download, drag_window, fullscreen, open_browser}; use menu::{get_menu, menu_event_handle}; use util::{get_data_dir, get_pake_config}; use window::get_window; @@ -43,7 +43,8 @@ pub fn run_app() { .invoke_handler(tauri::generate_handler![ drag_window, fullscreen, - open_browser + open_browser, + download ]) .setup(|app| { let _window = get_window(app, pake_config, data_dir);