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.
This is supported on crate feature menu
only.
menu
only.Sets the menu to use on all windows.
This is supported on crate feature menu
only.
menu
only.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
.
Trait Implementations
Auto Trait Implementations
impl<R> !RefUnwindSafe for Builder<R>
impl<R> Send for Builder<R> where
<<R as Runtime>::Dispatcher as Dispatch>::WindowBuilder: Send,
impl<R> Unpin for Builder<R> where
<<R as Runtime>::Dispatcher as Dispatch>::WindowBuilder: Unpin,
impl<R> !UnwindSafe for Builder<R>