Xz's blog Xz's blog
首页
时间序列
多模态
合成生物学
其他方向
生活
工具相关
PyTorch
导航站

Xu Zhen

首页
时间序列
多模态
合成生物学
其他方向
生活
工具相关
PyTorch
导航站
  • Rust

  • Rust-Windows 窗口自动化

  • Tauri

    • WebView
      • 项目结构
      • Tauri与React的第一个程序
    • C++

    • Claude Code

    • Liunx相关

    • Windows相关

    • IDE

    • Conda

    • Docker

    • VMware虚拟机

    • Python常用代码片段

    • 工具相关
    • Tauri
    xuzhen
    2025-08-26
    目录

    WebView

    # 1. WebView 是什么?

    从本质上讲,WebView 是一个嵌入在你的应用程序中的“迷你”浏览器。

    你可以把它理解为一个组件(Component),就像一个按钮、一个文本框一样,只不过这个组件的功能是专门用来显示网页内容的。它使用你操作系统内置的浏览器引擎来渲染 HTML、CSS 和 JavaScript。

    • 在 Windows 上,它使用的是 Microsoft Edge WebView2 (基于 Chromium)。
    • 在 macOS 和 iOS 上,它使用的是 WKWebView (基于 Safari 的 WebKit 引擎)。
    • 在 Linux 上,它使用的是 WebKitGTK。

    核心思想是: 开发者不需要为不同的操作系统从头开始用原生代码(如 C++, Swift, Rust)去画每一个界面元素,而是可以直接使用他们已经非常熟悉的 Web 前端技术(HTML, CSS, JavaScript)来构建用户界面(UI)。

    # 2. Tauri 为什么使用 WebView?

    Tauri 是一个用来构建跨平台桌面应用的框架。它选择使用 WebView 作为其核心,主要有以下几个关键原因:

    1. 极小的打包体积:传统的桌面应用框架(比如 Electron)会把整个 Chrome 浏览器内核(Chromium)打包到你的应用里,导致一个简单的 “Hello World” 应用可能就有几十甚至上百 MB。而 Tauri 非常聪明,它不自己带浏览器,而是直接使用操作系统已经内置的 WebView。这样就极大地减小了最终应用程序的体积,通常只有几 MB。

    2. 更低的内存占用:由于应用共享了系统内置的 WebView 实例,而不是为每个应用都启动一个独立的浏览器进程,因此内存消耗也显著降低,应用运行起来更加轻快。

    3. 跨平台开发:开发者只需要编写一套基于 HTML, CSS, JavaScript (或者使用 React, Vue, Svelte 等框架) 的前端代码,Tauri 就可以通过 WebView 把它展示在 Windows, macOS 和 Linux 上,实现了“一次编写,到处运行”的目标。

    4. 原生能力交互:Tauri 不仅仅是简单地显示一个网页。它在 WebView 的基础上,建立了一座“桥梁”,让你的前端 JavaScript 代码可以与后端的 Rust 代码进行通信。这意味着,你可以:

      • 在 JavaScript 中调用 Rust 函数来读写本地文件、访问数据库、执行复杂的计算等。
      • 在 Rust 中触发事件,然后让前端的 WebView 接收并更新界面。

    # 3. Tauri、WebView 和你的代码之间的关系

    在 Tauri 项目中,这三者的关系是这样的:

    • 你的前端代码 (HTML/CSS/JS):这是你应用的“脸面”,即用户看到和交互的界面。你用你最熟悉的前端框架(如 Vite, Next.js, Nuxt.js 等)来开发这部分。
    • WebView:这是操作系统的“翻译官”和“画布”。它负责解析你的前端代码,并将它渲染成用户可以看到的图形界面。它就像一个被限制在你的应用窗口内的浏览器标签页。
    • Tauri 后端 (Rust):这是应用的“大脑”和“骨架”。它负责创建窗口、管理菜单、处理文件系统、网络请求等所有需要原生能力的操作。它创建了 WebView 实例,并把你的前端代码加载进去。同时,它通过一个安全的通道与 WebView 里的 JavaScript 进行通信。

    整个工作流程可以简化为:

    1. 你启动 Tauri 应用。
    2. Tauri 的 Rust 核心启动,并创建一个原生窗口。
    3. Rust 核心在这个窗口中初始化一个 WebView 组件。
    4. WebView 加载你写好的 HTML、CSS 和 JavaScript 文件。
    5. 你的应用界面就显示出来了。当你在界面上进行操作时(比如点击按钮),JavaScript 可以通过 Tauri 提供的 API 调用 Rust 函数来执行底层操作。

    # 总结

    所以,当你学习 Tauri 时,可以这样理解 WebView:

    WebView 是 Tauri 实现其轻量、跨平台目标的关键技术。它是一个由操作系统提供的、能够渲染网页内容的组件,让你可以用前端技术来构建桌面应用的界面,同时 Tauri 负责将这个界面与强大的 Rust 后端能力连接起来,让你两边的优点都能享受到。

    简单来说,Tauri 通过 WebView 让你用 Web 技术写桌面应用的View(视图/界面)。

    #Tauri
    上次更新: 2025/08/28, 09:57:26

    ← 捕获选择的文本 项目结构→

    最近更新
    01
    Linux 通过Windows代理上网
    09-18
    02
    vscode远程使用copilot和codex(内网环境)
    09-18
    03
    跨机器克隆环境
    09-18
    更多文章>
    Theme by Vdoing | Copyright © 2025-2025 Xu Zhen | 鲁ICP备2025169719号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式