pub struct WindowBuilder<R: Runtime = Wry> { /* private fields */ }
Expand description

A builder for a webview window managed by Tauri.

Implementations

Initializes a webview window builder with the given window label and URL to load on the webview.

Defines a closure to be executed when the webview makes an HTTP request for a web resource, allowing you to modify the response.

Currently only implemented for the tauri URI protocol.

NOTE: Currently this is not executed when using external URLs such as a development server, but it might be implemented in the future. Always check the request URL.

Examples
use tauri::{
  utils::config::{Csp, CspDirectiveSources, WindowUrl},
  http::header::HeaderValue,
  window::WindowBuilder,
};
use std::collections::HashMap;
tauri::Builder::default()
  .setup(|app| {
    WindowBuilder::new(app, "core", WindowUrl::App("index.html".into()))
      .on_web_resource_request(|request, response| {
        if request.uri().starts_with("tauri://") {
          // if we have a CSP header, Tauri is loading an HTML file
          //  for this example, let's dynamically change the CSP
          if let Some(csp) = response.headers_mut().get_mut("Content-Security-Policy") {
            // use the tauri helper to parse the CSP policy to a map
            let mut csp_map: HashMap<String, CspDirectiveSources> = Csp::Policy(csp.to_str().unwrap().to_string()).into();
            csp_map.entry("script-src".to_string()).or_insert_with(Default::default).push("'unsafe-inline'");
            // use the tauri helper to get a CSP string from the map
            let csp_string = Csp::from(csp_map).to_string();
            *csp = HeaderValue::from_str(&csp_string).unwrap();
          }
        }
      })
      .build()?;
    Ok(())
  });

Creates a new webview window.

Sets the menu for the window.

Show window in the center of the screen.

The initial position of the window’s.

Window size.

Window min inner size.

Window max inner size.

Whether the window is resizable or not.

The title of the window in the title bar.

Whether to start the window in fullscreen or not.

Whether the window will be initially hidden or focused.

Whether the window should be maximized upon creation.

Whether the window should be immediately visible upon creation.

Forces a theme or uses the system settings if None was provided.

Platform-specific
  • macOS / Linux: Not implemented, the value is ignored.
Available on non-macOS or crate feature macos-private-api only.

Whether the the window should be transparent. If this is true, writing colors with alpha values different than 1.0 will produce a transparent window.

Whether the window should have borders and bars.

Whether the window should always be on top of other windows.

Sets the window icon.

Sets whether or not the window icon should be added to the taskbar.

Sets the init script.

Data directory for the webview.

Disables the file drop handler. This is required to use drag and drop APIs on the front end on Windows.

Enables clipboard access for the page rendered on Linux and Windows.

macOS doesn’t provide such method and is always enabled by default, but you still need to add menu item accelerators to use shortcuts.

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.