Skip to main content

WebviewProvider

Trait WebviewProvider 

Source
pub trait WebviewProvider:
    Environment
    + Send
    + Sync {
    // Required methods
    fn CreateWebviewPanel<'life0, 'async_trait>(
        &'life0 self,
        ExtensionDataValue: Value,
        ViewType: String,
        Title: String,
        ShowOptionsValue: Value,
        PanelOptionsValue: Value,
        ContentOptionsValue: Value,
    ) -> Pin<Box<dyn Future<Output = Result<String, CommonError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn DisposeWebviewPanel<'life0, 'async_trait>(
        &'life0 self,
        Handle: String,
    ) -> Pin<Box<dyn Future<Output = Result<(), CommonError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn RevealWebviewPanel<'life0, 'async_trait>(
        &'life0 self,
        Handle: String,
        ShowOptionsValue: Value,
    ) -> Pin<Box<dyn Future<Output = Result<(), CommonError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn SetWebviewOptions<'life0, 'async_trait>(
        &'life0 self,
        Handle: String,
        OptionsValue: Value,
    ) -> Pin<Box<dyn Future<Output = Result<(), CommonError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn SetWebviewHTML<'life0, 'async_trait>(
        &'life0 self,
        Handle: String,
        HTML: String,
    ) -> Pin<Box<dyn Future<Output = Result<(), CommonError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn PostMessageToWebview<'life0, 'async_trait>(
        &'life0 self,
        Handle: String,
        Message: Value,
    ) -> Pin<Box<dyn Future<Output = Result<bool, CommonError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}
Expand description

An abstract service contract for an environment component that can manage Webview panels.

This trait defines all the operations necessary for creating Webview-based UI, setting their content, and managing their lifecycle, abstracting away the specific UI framework (e.g., Tauri, Electron) being used by the host.

Required Methods§

Source

fn CreateWebviewPanel<'life0, 'async_trait>( &'life0 self, ExtensionDataValue: Value, ViewType: String, Title: String, ShowOptionsValue: Value, PanelOptionsValue: Value, ContentOptionsValue: Value, ) -> Pin<Box<dyn Future<Output = Result<String, CommonError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Creates a new Webview panel.

§Parameters
  • ExtensionDataValue: DTO containing information about the extension creating the panel.
  • ViewType: A unique string identifying the type of the Webview.
  • Title: The initial title for the Webview panel.
  • ShowOptionsValue: DTO specifying the view column to show the panel in.
  • PanelOptionsValue: DTO specifying behavior options for the panel (e.g., enable scripts).
  • ContentOptionsValue: DTO specifying content options (e.g., local resource roots).
§Returns

A Result containing a unique handle (string) for the new Webview, or a CommonError on failure.

Source

fn DisposeWebviewPanel<'life0, 'async_trait>( &'life0 self, Handle: String, ) -> Pin<Box<dyn Future<Output = Result<(), CommonError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Disposes of a Webview panel, removing it from the UI.

§Parameters
  • Handle: The unique handle of the Webview panel to dispose.
Source

fn RevealWebviewPanel<'life0, 'async_trait>( &'life0 self, Handle: String, ShowOptionsValue: Value, ) -> Pin<Box<dyn Future<Output = Result<(), CommonError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Reveals an existing Webview panel, bringing it to the front.

§Parameters
  • Handle: The unique handle of the Webview panel to reveal.
  • ShowOptionsValue: DTO specifying the view column to show the panel in.
Source

fn SetWebviewOptions<'life0, 'async_trait>( &'life0 self, Handle: String, OptionsValue: Value, ) -> Pin<Box<dyn Future<Output = Result<(), CommonError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Sets various options for a Webview panel, such as its title and icon path.

§Parameters
  • Handle: The unique handle of the Webview panel to update.
  • OptionsValue: A DTO (WebviewPanelOptionsUpdateDTO) containing the options to set.
Source

fn SetWebviewHTML<'life0, 'async_trait>( &'life0 self, Handle: String, HTML: String, ) -> Pin<Box<dyn Future<Output = Result<(), CommonError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Sets the HTML content of a Webview panel.

  • Handle: The unique handle of the Webview panel.
  • HTML: The HTML string to set as the content.
Source

fn PostMessageToWebview<'life0, 'async_trait>( &'life0 self, Handle: String, Message: Value, ) -> Pin<Box<dyn Future<Output = Result<bool, CommonError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Posts a message from the extension host to the Webview content script.

§Parameters
  • Handle: The unique handle of the target Webview panel.
  • Message: The JSON-serializable message to post.
§Returns

Ok(true) if the message was posted successfully.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§