Struct tauri::Builder [−][src]
pub struct Builder<R: Runtime> { /* fields omitted */ }
Expand description
Builds a Tauri application.
Implementations
Defines the JS message handler callback.
Defines the setup hook.
pub fn on_page_load<F>(self, on_page_load: F) -> Self where
F: Fn(Window<R>, PageLoadPayload) + Send + Sync + 'static,
pub fn on_page_load<F>(self, on_page_load: F) -> Self where
F: Fn(Window<R>, PageLoadPayload) + Send + Sync + 'static,
Defines the page load hook.
Add state
to the state managed by the application.
This method can be called any number of times as long as each call
refers to a different T
.
Managed state can be retrieved by any request handler via the
State
request guard. In particular, if a value of type T
is managed by Tauri, adding State<T>
to the list of arguments in a
request handler instructs Tauri to retrieve the managed value.
Panics
Panics if state of type T
is already being managed.
Mutability
Since the managed state is global and must be Send
+ Sync
, mutations can only happen through interior mutability:
use std::{collections::HashMap, sync::Mutex}; use tauri::State; // here we use Mutex to achieve interior mutability struct Storage(Mutex<HashMap<u64, String>>); struct Connection; struct DbConnection(Mutex<Option<Connection>>); #[tauri::command] fn connect(connection: State<DbConnection>) { // initialize the connection, mutating the state with interior mutability *connection.0.lock().unwrap() = Some(Connection {}); } #[tauri::command] fn storage_insert(key: u64, value: String, storage: State<Storage>) { // mutate the storage behind the Mutex storage.0.lock().unwrap().insert(key, value); } fn main() { Builder::default() .manage(Storage(Default::default())) .manage(DbConnection(Default::default())) .invoke_handler(tauri::generate_handler![connect, storage_insert]) .run(tauri::generate_context!()) .expect("error while running tauri application"); }
Example
use tauri::State; struct MyInt(isize); struct MyString(String); #[tauri::command] fn int_command(state: State<MyInt>) -> String { format!("The stateful int is: {}", state.0) } #[tauri::command] fn string_command<'r>(state: State<'r, MyString>) { println!("state: {}", state.inner().0); } fn main() { tauri::Builder::default() .manage(MyInt(10)) .manage(MyString("Hello, managed state!".to_string())) .invoke_handler(tauri::generate_handler![int_command, string_command]) .run(tauri::generate_context!()) .expect("error while running tauri application"); }
pub fn create_window<F>(
self,
label: impl Into<String>,
url: WindowUrl,
setup: F
) -> Self where
F: FnOnce(<R::Dispatcher as Dispatch>::WindowBuilder, WebviewAttributes) -> (<R::Dispatcher as Dispatch>::WindowBuilder, WebviewAttributes),
pub fn create_window<F>(
self,
label: impl Into<String>,
url: WindowUrl,
setup: F
) -> Self where
F: FnOnce(<R::Dispatcher as Dispatch>::WindowBuilder, WebviewAttributes) -> (<R::Dispatcher as Dispatch>::WindowBuilder, WebviewAttributes),
Creates a new webview window.
This is supported on crate feature system-tray
only.
system-tray
only.Adds the icon configured on tauri.conf.json
to the system tray with the specified menu items.
Sets the menu to use on all windows.
Registers a menu event handler for all windows.
pub fn on_window_event<F: Fn(GlobalWindowEvent<R>) + Send + Sync + 'static>(
self,
handler: F
) -> Self
pub fn on_window_event<F: Fn(GlobalWindowEvent<R>) + Send + Sync + 'static>(
self,
handler: F
) -> Self
Registers a window event handler for all windows.
pub fn on_system_tray_event<F: Fn(&AppHandle<R>, SystemTrayEvent) + Send + Sync + 'static>(
self,
handler: F
) -> Self
This is supported on crate feature system-tray
only.
pub fn on_system_tray_event<F: Fn(&AppHandle<R>, SystemTrayEvent) + Send + Sync + 'static>(
self,
handler: F
) -> Self
system-tray
only.Registers a system tray event handler.
Registers a URI scheme protocol available to all webviews. Leverages setURLSchemeHandler on macOS, AddWebResourceRequestedFilter on Windows and webkit-web-context-register-uri-scheme on Linux.
Arguments
uri_scheme
The URI scheme to register, such asexample
.protocol
the protocol associated with the given URI scheme. It’s a function that takes an URL such asexample://localhost/asset.css
.