pub trait WebviewBridge: Send + Sync {
Show 16 methods
// Required methods
fn eval_webview(
&self,
label: Option<&str>,
script: &str,
) -> Result<(), String>;
fn get_window_states(&self, label: Option<&str>) -> Vec<WindowState>;
fn list_window_labels(&self) -> Vec<String>;
fn get_native_handle(&self, label: Option<&str>) -> Result<isize, String>;
fn manage_window(
&self,
label: Option<&str>,
action: &str,
) -> Result<String, String>;
fn resize_window(
&self,
label: Option<&str>,
width: u32,
height: u32,
) -> Result<(), String>;
fn move_window(
&self,
label: Option<&str>,
x: i32,
y: i32,
) -> Result<(), String>;
fn set_window_title(
&self,
label: Option<&str>,
title: &str,
) -> Result<(), String>;
// Provided methods
fn native_type_text(
&self,
_label: Option<&str>,
_text: &str,
) -> Result<(), String> { ... }
fn native_key(&self, _label: Option<&str>, _key: &str) -> Result<(), String> { ... }
fn native_click(
&self,
_label: Option<&str>,
_x: f64,
_y: f64,
) -> Result<(), String> { ... }
fn app_data_dir(&self) -> Result<PathBuf, String> { ... }
fn app_config_dir(&self) -> Result<PathBuf, String> { ... }
fn app_log_dir(&self) -> Result<PathBuf, String> { ... }
fn app_local_data_dir(&self) -> Result<PathBuf, String> { ... }
fn tauri_config(&self) -> Value { ... }
}Expand description
Runtime-erased interface for webview and backend access, allowing the MCP server to interact with Tauri windows and the application backend without generic parameters.
Required Methods§
Sourcefn eval_webview(&self, label: Option<&str>, script: &str) -> Result<(), String>
fn eval_webview(&self, label: Option<&str>, script: &str) -> Result<(), String>
Execute JavaScript in the target webview (defaults to “main” or first visible window).
§Errors
Returns an error string if no matching window is found or the eval fails.
Sourcefn get_window_states(&self, label: Option<&str>) -> Vec<WindowState>
fn get_window_states(&self, label: Option<&str>) -> Vec<WindowState>
Retrieve the state of one or all windows (position, size, visibility, focus, URL).
Sourcefn list_window_labels(&self) -> Vec<String>
fn list_window_labels(&self) -> Vec<String>
Return the labels of all open webview windows.
Sourcefn get_native_handle(&self, label: Option<&str>) -> Result<isize, String>
fn get_native_handle(&self, label: Option<&str>) -> Result<isize, String>
Return the platform-native window handle for screenshot capture.
Windows: HWND, macOS: CGWindowID (window number), Linux: X11 window ID.
§Errors
Returns an error string if no matching window is found or the handle type is unsupported.
Sourcefn manage_window(
&self,
label: Option<&str>,
action: &str,
) -> Result<String, String>
fn manage_window( &self, label: Option<&str>, action: &str, ) -> Result<String, String>
Perform a window management action (minimize, maximize, close, show, hide, etc.).
§Errors
Returns an error string if no matching window is found or the action fails.
Sourcefn resize_window(
&self,
label: Option<&str>,
width: u32,
height: u32,
) -> Result<(), String>
fn resize_window( &self, label: Option<&str>, width: u32, height: u32, ) -> Result<(), String>
Set the logical size of a window in device-independent pixels.
§Errors
Returns an error string if no matching window is found or the resize fails.
Provided Methods§
Sourcefn native_type_text(
&self,
_label: Option<&str>,
_text: &str,
) -> Result<(), String>
fn native_type_text( &self, _label: Option<&str>, _text: &str, ) -> Result<(), String>
Type Unicode text as trusted OS keyboard input into the focused element of the target window. The element must already hold focus.
§Errors
Returns an error if not supported on this platform or the window is missing.
Sourcefn native_key(&self, _label: Option<&str>, _key: &str) -> Result<(), String>
fn native_key(&self, _label: Option<&str>, _key: &str) -> Result<(), String>
Press a single named key (e.g. Enter, Tab, Escape, ArrowDown) as
trusted OS keyboard input to the focused element of the target window.
§Errors
Returns an error if not supported on this platform or the key is unknown.
Sourcefn native_click(
&self,
_label: Option<&str>,
_x: f64,
_y: f64,
) -> Result<(), String>
fn native_click( &self, _label: Option<&str>, _x: f64, _y: f64, ) -> Result<(), String>
Click at logical (CSS-pixel) coordinates within the target window’s content area, as a trusted OS mouse event.
§Errors
Returns an error if not supported on this platform or the window is missing.
Sourcefn app_data_dir(&self) -> Result<PathBuf, String>
fn app_data_dir(&self) -> Result<PathBuf, String>
Return the app’s per-user data directory (e.g. ~/.local/share/<app>/).
§Errors
Returns an error if the path cannot be resolved.
Sourcefn app_config_dir(&self) -> Result<PathBuf, String>
fn app_config_dir(&self) -> Result<PathBuf, String>
Return the app’s per-user config directory (e.g. ~/.config/<app>/).
§Errors
Returns an error if the path cannot be resolved.
Sourcefn app_log_dir(&self) -> Result<PathBuf, String>
fn app_log_dir(&self) -> Result<PathBuf, String>
Sourcefn app_local_data_dir(&self) -> Result<PathBuf, String>
fn app_local_data_dir(&self) -> Result<PathBuf, String>
Sourcefn tauri_config(&self) -> Value
fn tauri_config(&self) -> Value
Return the Tauri app configuration as JSON.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".