pub struct App<R: Runtime = Wry> { /* private fields */ }
Expand description
The instance of the currently running application.
This type implements Manager
which allows for manipulation of global application items.
Implementations§
Source§impl App<Wry>
APIs specific to the wry runtime.
impl App<Wry>
APIs specific to the wry runtime.
Sourcepub fn wry_plugin<P: PluginBuilder<EventLoopMessage> + Send + 'static>(
&mut self,
plugin: P,
)
pub fn wry_plugin<P: PluginBuilder<EventLoopMessage> + Send + 'static>( &mut self, plugin: P, )
Adds a tauri_runtime_wry::Plugin
using its tauri_runtime_wry::PluginBuilder
.
§Stability
This API is unstable.
Source§impl<R: Runtime> App<R>
impl<R: Runtime> App<R>
Registers a global menu event listener.
Sourcepub fn on_tray_icon_event<F: Fn(&AppHandle<R>, TrayIconEvent) + Send + Sync + 'static>(
&self,
handler: F,
)
Available on desktop
and crate feature tray-icon
only.
pub fn on_tray_icon_event<F: Fn(&AppHandle<R>, TrayIconEvent) + Send + Sync + 'static>( &self, handler: F, )
desktop
and crate feature tray-icon
only.Registers a global tray icon menu event listener.
Sourcepub fn tray_by_id<'a, I>(&self, id: &'a I) -> Option<TrayIcon<R>>
Available on desktop
and crate feature tray-icon
only.
pub fn tray_by_id<'a, I>(&self, id: &'a I) -> Option<TrayIcon<R>>
desktop
and crate feature tray-icon
only.Gets a tray icon using the provided id.
Sourcepub fn remove_tray_by_id<'a, I>(&self, id: &'a I) -> Option<TrayIcon<R>>
Available on desktop
and crate feature tray-icon
only.
pub fn remove_tray_by_id<'a, I>(&self, id: &'a I) -> Option<TrayIcon<R>>
desktop
and crate feature tray-icon
only.Removes a tray icon using the provided id from tauri’s internal state and returns it.
Note that dropping the returned icon, may cause the tray icon to disappear if it wasn’t cloned somewhere else or referenced by JS.
Sourcepub fn config(&self) -> &Config
pub fn config(&self) -> &Config
Gets the app’s configuration, defined on the tauri.conf.json
file.
Sourcepub fn package_info(&self) -> &PackageInfo
pub fn package_info(&self) -> &PackageInfo
Gets the app’s package information.
Sourcepub fn asset_resolver(&self) -> AssetResolver<R>
pub fn asset_resolver(&self) -> AssetResolver<R>
The application’s asset resolver.
Sourcepub fn primary_monitor(&self) -> Result<Option<Monitor>>
pub fn primary_monitor(&self) -> Result<Option<Monitor>>
Returns the primary monitor of the system.
Returns None if it can’t identify any monitor as a primary one.
Sourcepub fn monitor_from_point(&self, x: f64, y: f64) -> Result<Option<Monitor>>
pub fn monitor_from_point(&self, x: f64, y: f64) -> Result<Option<Monitor>>
Returns the monitor that contains the given point.
Sourcepub fn available_monitors(&self) -> Result<Vec<Monitor>>
pub fn available_monitors(&self) -> Result<Vec<Monitor>>
Returns the list of all the monitors available on the system.
Sourcepub fn cursor_position(&self) -> Result<PhysicalPosition<f64>>
pub fn cursor_position(&self) -> Result<PhysicalPosition<f64>>
Get the cursor position relative to the top-left hand corner of the desktop.
Note that the top-left hand corner of the desktop is not necessarily the same as the screen. If the user uses a desktop with multiple monitors, the top-left hand corner of the desktop is the top-left hand corner of the main monitor on Windows and macOS or the top-left of the leftmost monitor on X11.
The coordinates can be negative if the top-left hand corner of the window is outside of the visible screen region.
Sourcepub fn default_window_icon(&self) -> Option<&Image<'_>>
pub fn default_window_icon(&self) -> Option<&Image<'_>>
Returns the default window icon.
Returns the app-wide menu.
Sets the app-wide menu and returns the previous one.
If a window was not created with an explicit menu or had one set explicitly, this menu will be assigned to it.
Remove the app-wide menu and returns it.
If a window was not created with an explicit menu or had one set explicitly, this will remove the menu from it.
Hides the app-wide menu from windows that have it.
If a window was not created with an explicit menu or had one set explicitly, this will hide the menu from it.
Shows the app-wide menu for windows that have it.
If a window was not created with an explicit menu or had one set explicitly, this will show the menu for it.
Sourcepub fn cleanup_before_exit(&self)
pub fn cleanup_before_exit(&self)
Runs necessary cleanup tasks before exiting the process. You should always exit the tauri app immediately after this function returns and not use any tauri-related APIs.
Sourcepub fn invoke_key(&self) -> &str
pub fn invoke_key(&self) -> &str
Gets the invoke key that must be referenced when using crate::webview::InvokeRequest
.
§Security
DO NOT expose this key to third party scripts as might grant access to the backend from external URLs and iframes.
Source§impl<R: Runtime> App<R>
impl<R: Runtime> App<R>
Sourcepub fn run_on_main_thread<F: FnOnce() + Send + 'static>(
&self,
f: F,
) -> Result<()>
pub fn run_on_main_thread<F: FnOnce() + Send + 'static>( &self, f: F, ) -> Result<()>
Runs the given closure on the main thread.
Sourcepub fn set_device_event_filter(&mut self, filter: DeviceEventFilter)
pub fn set_device_event_filter(&mut self, filter: DeviceEventFilter)
Change the device event filter mode.
Since the DeviceEvent capture can lead to high CPU usage for unfocused windows, tao
will ignore them by default for unfocused windows on Windows. This method allows changing
the filter to explicitly capture them again.
§Platform-specific
- ** Linux / macOS / iOS / Android**: Unsupported.
§Examples
let mut app = tauri::Builder::default()
// on an actual app, remove the string argument
.build(tauri::generate_context!("test/fixture/src-tauri/tauri.conf.json"))
.expect("error while building tauri application");
app.set_device_event_filter(tauri::DeviceEventFilter::Always);
app.run(|_app_handle, _event| {});
Sourcepub fn run<F: FnMut(&AppHandle<R>, RunEvent) + 'static>(self, callback: F)
pub fn run<F: FnMut(&AppHandle<R>, RunEvent) + 'static>(self, callback: F)
Runs the application.
This function never returns. When the application finishes, the process is exited directly using std::process::exit
.
See run_return
if you need to run code after the application event loop exits.
§Panics
This function will panic if the setup-function supplied in Builder::setup
fails.
§Examples
let app = tauri::Builder::default()
// on an actual app, remove the string argument
.build(tauri::generate_context!("test/fixture/src-tauri/tauri.conf.json"))
.expect("error while building tauri application");
app.run(|_app_handle, event| match event {
tauri::RunEvent::ExitRequested { api, .. } => {
api.prevent_exit();
}
_ => {}
});
Sourcepub fn run_return<F: FnMut(&AppHandle<R>, RunEvent) + 'static>(
self,
callback: F,
) -> i32
pub fn run_return<F: FnMut(&AppHandle<R>, RunEvent) + 'static>( self, callback: F, ) -> i32
Runs the application, returning its intended exit code.
Note when using AppHandle::restart
and AppHandle::request_restart
,
this function will handle the restart request, exit and restart the app without returning
§Platform-specific
- iOS: Unsupported. The application will fallback to
run
.
§Panics
This function will panic if the setup-function supplied in Builder::setup
fails.
§Examples
let app = tauri::Builder::default()
// on an actual app, remove the string argument
.build(tauri::generate_context!("test/fixture/src-tauri/tauri.conf.json"))
.expect("error while building tauri application");
let exit_code = app
.run_return(|_app_handle, event| match event {
tauri::RunEvent::ExitRequested { api, .. } => {
api.prevent_exit();
}
_ => {}
});
std::process::exit(exit_code);
Sourcepub fn run_iteration<F: FnMut(&AppHandle<R>, RunEvent) + 'static>(
&mut self,
callback: F,
)
👎Deprecated: When called in a loop (as suggested by the name), this function will busy-loop. To re-gain control of control flow after the app has exited, use App::run_return
instead.
pub fn run_iteration<F: FnMut(&AppHandle<R>, RunEvent) + 'static>( &mut self, callback: F, )
App::run_return
instead.Runs an iteration of the runtime event loop and immediately return.
Note that when using this API, app cleanup is not automatically done.
The cleanup calls App::cleanup_before_exit
so you may want to call that function before exiting the application.
§Examples
use tauri::Manager;
let mut app = tauri::Builder::default()
// on an actual app, remove the string argument
.build(tauri::generate_context!("test/fixture/src-tauri/tauri.conf.json"))
.expect("error while building tauri application");
loop {
app.run_iteration(|_app, _event| {});
if app.webview_windows().is_empty() {
app.cleanup_before_exit();
break;
}
}
Trait Implementations§
Source§impl<R: Runtime> Emitter<R> for App<R>
impl<R: Runtime> Emitter<R> for App<R>
Source§fn emit_str(&self, event: &str, payload: String) -> Result<()>
fn emit_str(&self, event: &str, payload: String) -> Result<()>
Emitter::emit
but the payload is json serialized.Source§fn emit_str_to<I>(&self, target: I, event: &str, payload: String) -> Result<()>where
I: Into<EventTarget>,
fn emit_str_to<I>(&self, target: I, event: &str, payload: String) -> Result<()>where
I: Into<EventTarget>,
Emitter::emit_to
but the payload is json serialized.Source§fn emit_str_filter<F>(
&self,
event: &str,
payload: String,
filter: F,
) -> Result<()>
fn emit_str_filter<F>( &self, event: &str, payload: String, filter: F, ) -> Result<()>
Emitter::emit_filter
but the payload is json serialized.Source§impl<R: Runtime> HasDisplayHandle for App<R>
impl<R: Runtime> HasDisplayHandle for App<R>
Source§fn display_handle(&self) -> Result<DisplayHandle<'_>, HandleError>
fn display_handle(&self) -> Result<DisplayHandle<'_>, HandleError>
Source§impl<R: Runtime> Listener<R> for App<R>
impl<R: Runtime> Listener<R> for App<R>
Source§fn listen<F>(&self, event: impl Into<String>, handler: F) -> EventId
fn listen<F>(&self, event: impl Into<String>, handler: F) -> EventId
Listen to an event on this app.
§Examples
use tauri::Listener;
tauri::Builder::default()
.setup(|app| {
app.listen("component-loaded", move |event| {
println!("window just loaded a component");
});
Ok(())
});
Source§fn once<F>(&self, event: impl Into<String>, handler: F) -> EventId
fn once<F>(&self, event: impl Into<String>, handler: F) -> EventId
Listen to an event on this app only once.
See Self::listen
for more information.
Source§fn unlisten(&self, id: EventId)
fn unlisten(&self, id: EventId)
Unlisten to an event on this app.
§Examples
use tauri::Listener;
tauri::Builder::default()
.setup(|app| {
let handler = app.listen("component-loaded", move |event| {
println!("app just loaded a component");
});
// stop listening to the event when you do not need it anymore
app.unlisten(handler);
Ok(())
});
Source§impl<R: Runtime> Manager<R> for App<R>
impl<R: Runtime> Manager<R> for App<R>
Source§fn resources_table(&self) -> MutexGuard<'_, ResourceTable>
fn resources_table(&self) -> MutexGuard<'_, ResourceTable>
Source§fn app_handle(&self) -> &AppHandle<R>
fn app_handle(&self) -> &AppHandle<R>
Source§fn package_info(&self) -> &PackageInfo
fn package_info(&self) -> &PackageInfo
PackageInfo
the manager was created with.Source§fn get_window(&self, label: &str) -> Option<Window<R>>
fn get_window(&self, label: &str) -> Option<Window<R>>
unstable
only.Source§fn get_focused_window(&self) -> Option<Window<R>>
fn get_focused_window(&self) -> Option<Window<R>>
unstable
only.None
if there is not any focused window.Source§fn windows(&self) -> HashMap<String, Window<R>>
fn windows(&self) -> HashMap<String, Window<R>>
unstable
only.Source§fn get_webview(&self, label: &str) -> Option<Webview<R>>
fn get_webview(&self, label: &str) -> Option<Webview<R>>
unstable
only.Source§fn webviews(&self) -> HashMap<String, Webview<R>>
fn webviews(&self) -> HashMap<String, Webview<R>>
unstable
only.Source§fn get_webview_window(&self, label: &str) -> Option<WebviewWindow<R>>
fn get_webview_window(&self, label: &str) -> Option<WebviewWindow<R>>
Source§fn webview_windows(&self) -> HashMap<String, WebviewWindow<R>>
fn webview_windows(&self) -> HashMap<String, WebviewWindow<R>>
Source§fn manage<T>(&self, state: T) -> bool
fn manage<T>(&self, state: T) -> bool
state
to the state managed by the application. Read moreSource§fn unmanage<T>(&self) -> Option<T>
fn unmanage<T>(&self) -> Option<T>
Source§fn try_state<T>(&self) -> Option<State<'_, T>>
fn try_state<T>(&self) -> Option<State<'_, T>>
T
. Read moreSource§fn asset_protocol_scope(&self) -> Scope
fn asset_protocol_scope(&self) -> Scope
Source§fn path(&self) -> &PathResolver<R>
fn path(&self) -> &PathResolver<R>
Source§fn add_capability(&self, capability: impl RuntimeCapability) -> Result<()>
fn add_capability(&self, capability: impl RuntimeCapability) -> Result<()>
Auto Trait Implementations§
impl<R> Freeze for App<R>
impl<R = Wry<EventLoopMessage>> !RefUnwindSafe for App<R>
impl<R> Send for App<R>where
R: Send,
impl<R = Wry<EventLoopMessage>> !Sync for App<R>
impl<R> Unpin for App<R>
impl<R = Wry<EventLoopMessage>> !UnwindSafe for App<R>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> HasRawDisplayHandle for Twhere
T: HasDisplayHandle + ?Sized,
impl<T> HasRawDisplayHandle for Twhere
T: HasDisplayHandle + ?Sized,
Source§fn raw_display_handle(&self) -> Result<RawDisplayHandle, HandleError>
fn raw_display_handle(&self) -> Result<RawDisplayHandle, HandleError>
HasDisplayHandle
instead