pub struct WebviewWindow<R: Runtime = Wry> { /* private fields */ }
Implementations§
Source§impl<R: Runtime> WebviewWindow<R>
impl<R: Runtime> WebviewWindow<R>
Base webview window functions.
Sourcepub fn builder<M: Manager<R>, L: Into<String>>(
manager: &M,
label: L,
url: WebviewUrl,
) -> WebviewWindowBuilder<'_, R, M>
pub fn builder<M: Manager<R>, L: Into<String>>( manager: &M, label: L, url: WebviewUrl, ) -> WebviewWindowBuilder<'_, R, M>
Initializes a WebviewWindowBuilder
with the given window label and webview URL.
Data URLs are only supported with the webview-data-url
feature flag.
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 on_window_event<F: Fn(&WindowEvent) + Send + 'static>(&self, f: F)
pub fn on_window_event<F: Fn(&WindowEvent) + Send + 'static>(&self, f: F)
Registers a window event listener.
Sourcepub fn resolve_command_scope<T: ScopeObject>(
&self,
plugin: &str,
command: &str,
) -> Result<Option<ResolvedScope<T>>>
pub fn resolve_command_scope<T: ScopeObject>( &self, plugin: &str, command: &str, ) -> Result<Option<ResolvedScope<T>>>
Resolves the given command scope for this webview on the currently loaded URL.
If the command is not allowed, returns None.
If the scope cannot be deserialized to the given type, an error is returned.
In a command context this can be directly resolved from the command arguments via crate::ipc::CommandScope:
use tauri::ipc::CommandScope;
#[derive(Debug, serde::Deserialize)]
struct ScopeType {
some_value: String,
}
#[tauri::command]
fn my_command(scope: CommandScope<ScopeType>) {
// check scope
}
§Examples
use tauri::Manager;
#[derive(Debug, serde::Deserialize)]
struct ScopeType {
some_value: String,
}
tauri::Builder::default()
.setup(|app| {
let webview = app.get_webview_window("main").unwrap();
let scope = webview.resolve_command_scope::<ScopeType>("my-plugin", "read");
Ok(())
});
Source§impl<R: Runtime> WebviewWindow<R>
impl<R: Runtime> WebviewWindow<R>
Menu APIs
Registers a global menu event listener.
Note that this handler is called for any menu event, whether it is coming from this window, another window or from the tray icon menu.
Also note that this handler will not be called if the window used to register it was closed.
§Examples
use tauri::menu::{Menu, Submenu, MenuItem};
use tauri::{WebviewWindowBuilder, WebviewUrl};
tauri::Builder::default()
.setup(|app| {
let handle = app.handle();
let save_menu_item = MenuItem::new(handle, "Save", true, None::<&str>)?;
let menu = Menu::with_items(handle, &[
&Submenu::with_items(handle, "File", true, &[
&save_menu_item,
])?,
])?;
let webview_window = WebviewWindowBuilder::new(app, "editor", WebviewUrl::default())
.menu(menu)
.build()
.unwrap();
webview_window.on_menu_event(move |window, event| {
if event.id == save_menu_item.id() {
// save menu item
}
});
Ok(())
});
Returns this window menu.
Sets the window menu and returns the previous one.
§Platform-specific:
- macOS: Unsupported. The menu on macOS is app-wide and not specific to one
window, if you need to set it, use
AppHandle::set_menu
instead.
Removes the window menu and returns it.
§Platform-specific:
- macOS: Unsupported. The menu on macOS is app-wide and not specific to one
window, if you need to remove it, use
AppHandle::remove_menu
instead.
Hides the window menu.
Shows the window menu.
Shows the window menu.
Shows the specified menu as a context menu at the cursor position.
Shows the specified menu as a context menu at the specified position.
The position is relative to the window’s top-left corner.
Source§impl<R: Runtime> WebviewWindow<R>
impl<R: Runtime> WebviewWindow<R>
Window getters.
Sourcepub fn scale_factor(&self) -> Result<f64>
pub fn scale_factor(&self) -> Result<f64>
Returns the scale factor that can be used to map logical pixels to physical pixels, and vice versa.
Sourcepub fn inner_position(&self) -> Result<PhysicalPosition<i32>>
pub fn inner_position(&self) -> Result<PhysicalPosition<i32>>
Returns the position of the top-left hand corner of the window’s client area relative to the top-left hand corner of the desktop.
Sourcepub fn outer_position(&self) -> Result<PhysicalPosition<i32>>
pub fn outer_position(&self) -> Result<PhysicalPosition<i32>>
Returns the position of the top-left hand corner of the window relative to the top-left hand corner of the desktop.
Sourcepub fn inner_size(&self) -> Result<PhysicalSize<u32>>
pub fn inner_size(&self) -> Result<PhysicalSize<u32>>
Returns the physical size of the window’s client area.
The client area is the content of the window, excluding the title bar and borders.
Sourcepub fn outer_size(&self) -> Result<PhysicalSize<u32>>
pub fn outer_size(&self) -> Result<PhysicalSize<u32>>
Returns the physical size of the entire window.
These dimensions include the title bar and borders. If you don’t want that (and you usually don’t), use inner_size instead.
Sourcepub fn is_fullscreen(&self) -> Result<bool>
pub fn is_fullscreen(&self) -> Result<bool>
Gets the window’s current fullscreen state.
Sourcepub fn is_minimized(&self) -> Result<bool>
pub fn is_minimized(&self) -> Result<bool>
Gets the window’s current minimized state.
Sourcepub fn is_maximized(&self) -> Result<bool>
pub fn is_maximized(&self) -> Result<bool>
Gets the window’s current maximized state.
Sourcepub fn is_focused(&self) -> Result<bool>
pub fn is_focused(&self) -> Result<bool>
Gets the window’s current focus state.
Sourcepub fn is_decorated(&self) -> Result<bool>
pub fn is_decorated(&self) -> Result<bool>
Gets the window’s current decoration state.
Sourcepub fn is_resizable(&self) -> Result<bool>
pub fn is_resizable(&self) -> Result<bool>
Gets the window’s current resizable state.
Sourcepub fn is_enabled(&self) -> Result<bool>
pub fn is_enabled(&self) -> Result<bool>
Whether the window is enabled or disabled.
Sourcepub fn is_maximizable(&self) -> Result<bool>
pub fn is_maximizable(&self) -> Result<bool>
Gets the window’s native maximize button state
§Platform-specific
- Linux / iOS / Android: Unsupported.
Sourcepub fn is_minimizable(&self) -> Result<bool>
pub fn is_minimizable(&self) -> Result<bool>
Gets the window’s native minimize button state
§Platform-specific
- Linux / iOS / Android: Unsupported.
Sourcepub fn is_closable(&self) -> Result<bool>
pub fn is_closable(&self) -> Result<bool>
Sourcepub fn is_visible(&self) -> Result<bool>
pub fn is_visible(&self) -> Result<bool>
Gets the window’s current visibility state.
Sourcepub fn current_monitor(&self) -> Result<Option<Monitor>>
pub fn current_monitor(&self) -> Result<Option<Monitor>>
Returns the monitor on which the window currently resides.
Returns None if current monitor can’t be detected.
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 gtk_window(&self) -> Result<ApplicationWindow>
pub fn gtk_window(&self) -> Result<ApplicationWindow>
Returns the ApplicationWindow
from gtk crate that is used by this window.
Note that this type can only be used on the main thread.
Sourcepub fn default_vbox(&self) -> Result<Box>
pub fn default_vbox(&self) -> Result<Box>
Returns the vertical gtk::Box
that is added by default as the sole child of this window.
Note that this type can only be used on the main thread.
Source§impl<R: Runtime> WebviewWindow<R>
impl<R: Runtime> WebviewWindow<R>
Desktop window getters.
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.
Source§impl<R: Runtime> WebviewWindow<R>
impl<R: Runtime> WebviewWindow<R>
Desktop window setters and actions.
Sourcepub fn request_user_attention(
&self,
request_type: Option<UserAttentionType>,
) -> Result<()>
pub fn request_user_attention( &self, request_type: Option<UserAttentionType>, ) -> Result<()>
Requests user attention to the window, this has no effect if the application
is already focused. How requesting for user attention manifests is platform dependent,
see UserAttentionType
for details.
Providing None
will unset the request for user attention. Unsetting the request for
user attention might not be done automatically by the WM when the window receives input.
§Platform-specific
- macOS:
None
has no effect. - Linux: Urgency levels have the same effect.
Sourcepub fn set_resizable(&self, resizable: bool) -> Result<()>
pub fn set_resizable(&self, resizable: bool) -> Result<()>
Determines if this window should be resizable. When resizable is set to false, native window’s maximize button is automatically disabled.
Sourcepub fn set_enabled(&self, enabled: bool) -> Result<()>
pub fn set_enabled(&self, enabled: bool) -> Result<()>
Enable or disable the window.
Sourcepub fn set_maximizable(&self, maximizable: bool) -> Result<()>
pub fn set_maximizable(&self, maximizable: bool) -> Result<()>
Determines if this window’s native maximize button should be enabled. If resizable is set to false, this setting is ignored.
§Platform-specific
- macOS: Disables the “zoom” button in the window titlebar, which is also used to enter fullscreen mode.
- Linux / iOS / Android: Unsupported.
Sourcepub fn set_minimizable(&self, minimizable: bool) -> Result<()>
pub fn set_minimizable(&self, minimizable: bool) -> Result<()>
Determines if this window’s native minimize button should be enabled.
§Platform-specific
- Linux / iOS / Android: Unsupported.
Sourcepub fn set_closable(&self, closable: bool) -> Result<()>
pub fn set_closable(&self, closable: bool) -> Result<()>
Determines if this window’s native close button should be enabled.
§Platform-specific
- Linux: “GTK+ will do its best to convince the window manager not to show a close button. Depending on the system, this function may not have any effect when called on a window that is already visible”
- iOS / Android: Unsupported.
Sourcepub fn unmaximize(&self) -> Result<()>
pub fn unmaximize(&self) -> Result<()>
Un-maximizes this window.
Sourcepub fn unminimize(&self) -> Result<()>
pub fn unminimize(&self) -> Result<()>
Un-minimizes this window.
Sourcepub fn close(&self) -> Result<()>
pub fn close(&self) -> Result<()>
Closes this window. It emits [crate::RunEvent::CloseRequested
] first like a user-initiated close request so you can intercept it.
Sourcepub fn destroy(&self) -> Result<()>
pub fn destroy(&self) -> Result<()>
Destroys this window. Similar to Self::close
but does not emit any events and force close the window instead.
Sourcepub fn set_decorations(&self, decorations: bool) -> Result<()>
pub fn set_decorations(&self, decorations: bool) -> Result<()>
Determines if this window should be decorated.
Sourcepub fn set_shadow(&self, enable: bool) -> Result<()>
pub fn set_shadow(&self, enable: bool) -> Result<()>
Determines if this window should have shadow.
§Platform-specific
- Windows:
false
has no effect on decorated window, shadow are always ON.true
will make undecorated window have a 1px white border, and on Windows 11, it will have a rounded corners.
- Linux: Unsupported.
Sourcepub fn set_effects<E: Into<Option<WindowEffectsConfig>>>(
&self,
effects: E,
) -> Result<()>
pub fn set_effects<E: Into<Option<WindowEffectsConfig>>>( &self, effects: E, ) -> Result<()>
Sets window effects, pass None
to clear any effects applied if possible.
Requires the window to be transparent.
See crate::window::EffectsBuilder
for a convenient builder for crate::utils::config::WindowEffectsConfig
.
use tauri::{Manager, window::{Color, Effect, EffectState, EffectsBuilder}};
tauri::Builder::default()
.setup(|app| {
let webview_window = app.get_webview_window("main").unwrap();
webview_window.set_effects(
EffectsBuilder::new()
.effect(Effect::Popover)
.state(EffectState::Active)
.radius(5.)
.color(Color(0, 0, 0, 255))
.build(),
)?;
Ok(())
});
§Platform-specific:
- Windows: If using decorations or shadows, you may want to try this workaround https://github.com/tauri-apps/tao/issues/72#issuecomment-975607891
- Linux: Unsupported
Sourcepub fn set_always_on_bottom(&self, always_on_bottom: bool) -> Result<()>
pub fn set_always_on_bottom(&self, always_on_bottom: bool) -> Result<()>
Determines if this window should always be below other windows.
Sourcepub fn set_always_on_top(&self, always_on_top: bool) -> Result<()>
pub fn set_always_on_top(&self, always_on_top: bool) -> Result<()>
Determines if this window should always be on top of other windows.
Sourcepub fn set_visible_on_all_workspaces(
&self,
visible_on_all_workspaces: bool,
) -> Result<()>
pub fn set_visible_on_all_workspaces( &self, visible_on_all_workspaces: bool, ) -> Result<()>
Sets whether the window should be visible on all workspaces or virtual desktops.
Sourcepub fn set_content_protected(&self, protected: bool) -> Result<()>
pub fn set_content_protected(&self, protected: bool) -> Result<()>
Prevents the window contents from being captured by other apps.
Sourcepub fn set_min_size<S: Into<Size>>(&self, size: Option<S>) -> Result<()>
pub fn set_min_size<S: Into<Size>>(&self, size: Option<S>) -> Result<()>
Sets this window’s minimum inner size.
Sourcepub fn set_max_size<S: Into<Size>>(&self, size: Option<S>) -> Result<()>
pub fn set_max_size<S: Into<Size>>(&self, size: Option<S>) -> Result<()>
Sets this window’s maximum inner size.
Sourcepub fn set_size_constraints(
&self,
constriants: WindowSizeConstraints,
) -> Result<()>
pub fn set_size_constraints( &self, constriants: WindowSizeConstraints, ) -> Result<()>
Sets this window’s minimum inner width.
Sourcepub fn set_position<Pos: Into<Position>>(&self, position: Pos) -> Result<()>
pub fn set_position<Pos: Into<Position>>(&self, position: Pos) -> Result<()>
Sets this window’s position.
Sourcepub fn set_fullscreen(&self, fullscreen: bool) -> Result<()>
pub fn set_fullscreen(&self, fullscreen: bool) -> Result<()>
Determines if this window should be fullscreen.
Sourcepub fn set_background_color(&self, color: Option<Color>) -> Result<()>
pub fn set_background_color(&self, color: Option<Color>) -> Result<()>
Sets the window background color.
§Platform-specific:
- iOS / Android: Unsupported.
- macOS: Not implemented for the webview layer..
- Windows:
- alpha channel is ignored for the window layer.
- On Windows 7, transparency is not supported and the alpha value will be ignored for the webview layer..
- On Windows 8 and newer: translucent colors are not supported so any alpha value other than
0
will be replaced by255
for the webview layer.
Sourcepub fn set_skip_taskbar(&self, skip: bool) -> Result<()>
pub fn set_skip_taskbar(&self, skip: bool) -> Result<()>
Sourcepub fn set_cursor_grab(&self, grab: bool) -> Result<()>
pub fn set_cursor_grab(&self, grab: bool) -> Result<()>
Grabs the cursor, preventing it from leaving the window.
There’s no guarantee that the cursor will be hidden. You should hide it by yourself if you want so.
§Platform-specific
- Linux: Unsupported.
- macOS: This locks the cursor in a fixed location, which looks visually awkward.
Sourcepub fn set_cursor_visible(&self, visible: bool) -> Result<()>
pub fn set_cursor_visible(&self, visible: bool) -> Result<()>
Modifies the cursor’s visibility.
If false
, this will hide the cursor. If true
, this will show the cursor.
§Platform-specific
- Windows: The cursor is only hidden within the confines of the window.
- macOS: The cursor is hidden as long as the window has input focus, even if the cursor is outside of the window.
Sourcepub fn set_cursor_icon(&self, icon: CursorIcon) -> Result<()>
pub fn set_cursor_icon(&self, icon: CursorIcon) -> Result<()>
Modifies the cursor icon of the window.
Sourcepub fn set_cursor_position<Pos: Into<Position>>(
&self,
position: Pos,
) -> Result<()>
pub fn set_cursor_position<Pos: Into<Position>>( &self, position: Pos, ) -> Result<()>
Changes the position of the cursor in window coordinates.
Sourcepub fn set_ignore_cursor_events(&self, ignore: bool) -> Result<()>
pub fn set_ignore_cursor_events(&self, ignore: bool) -> Result<()>
Ignores the window cursor events.
Sourcepub fn start_dragging(&self) -> Result<()>
pub fn start_dragging(&self) -> Result<()>
Starts dragging the window.
Sourcepub fn set_progress_bar(&self, progress_state: ProgressBarState) -> Result<()>
pub fn set_progress_bar(&self, progress_state: ProgressBarState) -> Result<()>
Sets the taskbar progress state.
§Platform-specific
- Linux / macOS: Progress bar is app-wide and not specific to this window.
- Linux: Only supported desktop environments with
libunity
(e.g. GNOME). - iOS / Android: Unsupported.
Sourcepub fn set_title_bar_style(&self, style: TitleBarStyle) -> Result<()>
pub fn set_title_bar_style(&self, style: TitleBarStyle) -> Result<()>
Sets the title bar style. macOS only.
Source§impl<R: Runtime> WebviewWindow<R>
impl<R: Runtime> WebviewWindow<R>
Desktop webview setters and actions.
Source§impl<R: Runtime> WebviewWindow<R>
impl<R: Runtime> WebviewWindow<R>
Webview APIs.
Sourcepub fn with_webview<F: FnOnce(PlatformWebview) + Send + 'static>(
&self,
f: F,
) -> Result<()>
pub fn with_webview<F: FnOnce(PlatformWebview) + Send + 'static>( &self, f: F, ) -> Result<()>
Executes a closure, providing it with the webview handle that is specific to the current platform.
The closure is executed on the main thread.
§Examples
use tauri::Manager;
fn main() {
tauri::Builder::default()
.setup(|app| {
let main_webview = app.get_webview_window("main").unwrap();
main_webview.with_webview(|webview| {
#[cfg(target_os = "linux")]
{
// see <https://docs.rs/webkit2gtk/2.0.0/webkit2gtk/struct.WebView.html>
// and <https://docs.rs/webkit2gtk/2.0.0/webkit2gtk/trait.WebViewExt.html>
use webkit2gtk::WebViewExt;
webview.inner().set_zoom_level(4.);
}
#[cfg(windows)]
unsafe {
// see <https://docs.rs/webview2-com/0.19.1/webview2_com/Microsoft/Web/WebView2/Win32/struct.ICoreWebView2Controller.html>
webview.controller().SetZoomFactor(4.).unwrap();
}
#[cfg(target_os = "macos")]
unsafe {
let view: &objc2_web_kit::WKWebView = &*webview.inner().cast();
let controller: &objc2_web_kit::WKUserContentController = &*webview.controller().cast();
let window: &objc2_app_kit::NSWindow = &*webview.ns_window().cast();
view.setPageZoom(4.);
controller.removeAllUserScripts();
let bg_color = objc2_app_kit::NSColor::colorWithDeviceRed_green_blue_alpha(0.5, 0.2, 0.4, 1.);
window.setBackgroundColor(Some(&bg_color));
}
#[cfg(target_os = "android")]
{
use jni::objects::JValue;
webview.jni_handle().exec(|env, _, webview| {
env.call_method(webview, "zoomBy", "(F)V", &[JValue::Float(4.)]).unwrap();
})
}
});
Ok(())
});
}
Navigates the webview to the defined url.
Sourcepub fn on_message(
self,
request: InvokeRequest,
responder: Box<OwnedInvokeResponder<R>>,
)
pub fn on_message( self, request: InvokeRequest, responder: Box<OwnedInvokeResponder<R>>, )
Handles this window receiving an crate::webview::InvokeRequest
.
Sourcepub fn open_devtools(&self)
Available on debug-assertions enabled or crate feature devtools
only.
pub fn open_devtools(&self)
devtools
only.Opens the developer tools window (Web Inspector).
The devtools is only enabled on debug builds or with the devtools
feature flag.
§Platform-specific
- macOS: Only supported on macOS 10.15+. This is a private API on macOS, so you cannot use this if your application will be published on the App Store.
§Examples
use tauri::Manager;
tauri::Builder::default()
.setup(|app| {
#[cfg(debug_assertions)]
app.get_webview_window("main").unwrap().open_devtools();
Ok(())
});
Sourcepub fn close_devtools(&self)
Available on debug-assertions enabled or crate feature devtools
only.
pub fn close_devtools(&self)
devtools
only.Closes the developer tools window (Web Inspector).
The devtools is only enabled on debug builds or with the devtools
feature flag.
§Platform-specific
- macOS: Only supported on macOS 10.15+. This is a private API on macOS, so you cannot use this if your application will be published on the App Store.
- Windows: Unsupported.
§Examples
use tauri::Manager;
tauri::Builder::default()
.setup(|app| {
#[cfg(debug_assertions)]
{
let webview = app.get_webview_window("main").unwrap();
webview.open_devtools();
std::thread::spawn(move || {
std::thread::sleep(std::time::Duration::from_secs(10));
webview.close_devtools();
});
}
Ok(())
});
Sourcepub fn is_devtools_open(&self) -> bool
Available on debug-assertions enabled or crate feature devtools
only.
pub fn is_devtools_open(&self) -> bool
devtools
only.Checks if the developer tools window (Web Inspector) is opened.
The devtools is only enabled on debug builds or with the devtools
feature flag.
§Platform-specific
- macOS: Only supported on macOS 10.15+. This is a private API on macOS, so you cannot use this if your application will be published on the App Store.
- Windows: Unsupported.
§Examples
use tauri::Manager;
tauri::Builder::default()
.setup(|app| {
#[cfg(debug_assertions)]
{
let webview = app.get_webview_window("main").unwrap();
if !webview.is_devtools_open() {
webview.open_devtools();
}
}
Ok(())
});
Sourcepub fn set_zoom(&self, scale_factor: f64) -> Result<()>
pub fn set_zoom(&self, scale_factor: f64) -> Result<()>
Set the webview zoom level
§Platform-specific:
- Android: Not supported.
- macOS: available on macOS 11+ only.
- iOS: available on iOS 14+ only.
Sourcepub fn clear_all_browsing_data(&self) -> Result<()>
pub fn clear_all_browsing_data(&self) -> Result<()>
Clear all browsing data for this webview window.
Trait Implementations§
Source§impl<R: Runtime> Clone for WebviewWindow<R>
impl<R: Runtime> Clone for WebviewWindow<R>
Source§impl<'de, R: Runtime> CommandArg<'de, R> for WebviewWindow<R>
impl<'de, R: Runtime> CommandArg<'de, R> for WebviewWindow<R>
Source§fn from_command(command: CommandItem<'de, R>) -> Result<Self, InvokeError>
fn from_command(command: CommandItem<'de, R>) -> Result<Self, InvokeError>
Grabs the Window
from the CommandItem
. This will never fail.
Source§impl<R: Runtime> Emitter<R> for WebviewWindow<R>
impl<R: Runtime> Emitter<R> for WebviewWindow<R>
Source§fn emit_to<I, S>(&self, target: I, event: &str, payload: S) -> Result<()>
fn emit_to<I, S>(&self, target: I, event: &str, payload: S) -> Result<()>
Emits an event to all targets matching the given target.
§Examples
use tauri::{Emitter, EventTarget};
#[tauri::command]
fn download(window: tauri::WebviewWindow) {
for i in 1..100 {
std::thread::sleep(std::time::Duration::from_millis(150));
// emit a download progress event to all listeners
window.emit_to(EventTarget::any(), "download-progress", i);
// emit an event to listeners that used App::listen or AppHandle::listen
window.emit_to(EventTarget::app(), "download-progress", i);
// emit an event to any webview/window/webviewWindow matching the given label
window.emit_to("updater", "download-progress", i); // similar to using EventTarget::labeled
window.emit_to(EventTarget::labeled("updater"), "download-progress", i);
// emit an event to listeners that used WebviewWindow::listen
window.emit_to(EventTarget::webview_window("updater"), "download-progress", i);
}
}
Source§fn emit_filter<S, F>(&self, event: &str, payload: S, filter: F) -> Result<()>
fn emit_filter<S, F>(&self, event: &str, payload: S, filter: F) -> Result<()>
Emits an event to all targets based on the given filter.
§Examples
use tauri::{Emitter, EventTarget};
#[tauri::command]
fn download(window: tauri::WebviewWindow) {
for i in 1..100 {
std::thread::sleep(std::time::Duration::from_millis(150));
// emit a download progress event to the updater window
window.emit_filter("download-progress", i, |t| match t {
EventTarget::WebviewWindow { label } => label == "main",
_ => false,
});
}
}
Source§impl<R: Runtime> FunctionArg for WebviewWindow<R>
impl<R: Runtime> FunctionArg for WebviewWindow<R>
Source§impl<R: Runtime> HasDisplayHandle for WebviewWindow<R>
impl<R: Runtime> HasDisplayHandle for WebviewWindow<R>
Source§fn display_handle(&self) -> Result<DisplayHandle<'_>, HandleError>
fn display_handle(&self) -> Result<DisplayHandle<'_>, HandleError>
Source§impl<R: Runtime> HasWindowHandle for WebviewWindow<R>
impl<R: Runtime> HasWindowHandle for WebviewWindow<R>
Source§fn window_handle(&self) -> Result<WindowHandle<'_>, HandleError>
fn window_handle(&self) -> Result<WindowHandle<'_>, HandleError>
Source§impl<R: Runtime> Listener<R> for WebviewWindow<R>
impl<R: Runtime> Listener<R> for WebviewWindow<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 webview window.
§Examples
use tauri::{Manager, Listener};
tauri::Builder::default()
.setup(|app| {
let webview_window = app.get_webview_window("main").unwrap();
webview_window.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 window webview 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 webview window.
§Examples
use tauri::{Manager, Listener};
tauri::Builder::default()
.setup(|app| {
let webview_window = app.get_webview_window("main").unwrap();
let webview_window_ = webview_window.clone();
let handler = webview_window.listen("component-loaded", move |event| {
println!("webview_window just loaded a component");
// we no longer need to listen to the event
// we also could have used `webview_window.once` instead
webview_window_.unlisten(event.id());
});
// stop listening to the event when you do not need it anymore
webview_window.unlisten(handler);
Ok(())
});
Source§impl<R: Runtime> Manager<R> for WebviewWindow<R>
impl<R: Runtime> Manager<R> for WebviewWindow<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<()>
Source§impl<R: Runtime> PartialEq for WebviewWindow<R>
impl<R: Runtime> PartialEq for WebviewWindow<R>
impl<R: Runtime> Eq for WebviewWindow<R>
Auto Trait Implementations§
impl<R> Freeze for WebviewWindow<R>where
<R as Runtime<EventLoopMessage>>::WindowDispatcher: Freeze,
<R as Runtime<EventLoopMessage>>::Handle: Freeze,
<R as Runtime<EventLoopMessage>>::WebviewDispatcher: Freeze,
impl<R = Wry<EventLoopMessage>> !RefUnwindSafe for WebviewWindow<R>
impl<R> Send for WebviewWindow<R>
impl<R> Sync for WebviewWindow<R>
impl<R> Unpin for WebviewWindow<R>where
<R as Runtime<EventLoopMessage>>::WindowDispatcher: Unpin,
<R as Runtime<EventLoopMessage>>::Handle: Unpin,
<R as Runtime<EventLoopMessage>>::WebviewDispatcher: Unpin,
impl<R = Wry<EventLoopMessage>> !UnwindSafe for WebviewWindow<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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.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
insteadSource§impl<T> HasRawWindowHandle for Twhere
T: HasWindowHandle + ?Sized,
impl<T> HasRawWindowHandle for Twhere
T: HasWindowHandle + ?Sized,
Source§fn raw_window_handle(&self) -> Result<RawWindowHandle, HandleError>
fn raw_window_handle(&self) -> Result<RawWindowHandle, HandleError>
HasWindowHandle
instead