
---

## 一、基本概述

- **跨平台原生 WebView 窗口**  
    pywebview 是一个轻量级包装库，可在 Python 程序中使用 HTML/CSS/JavaScript 构建 GUI，打开原生的 WebView 窗口，适用于 Windows、macOS、Linux（GTK 或 QT）、Android 平台 ([GitHub](https://github.com/r0x0r/pywebview?utm_source=chatgpt.com "r0x0r/pywebview: Build GUI for your Python program with ..."), [pywebview.flowrl.com](https://pywebview.flowrl.com/blog/pywebview5.html?utm_source=chatgpt.com "5.0 has landed - pywebview - Example"))。
    

---

## 二、核心功能分类

### 1. 窗口管理功能

- 使用 `webview.create_window(...)` 创建窗口，可设置属性包括：标题、加载方式（URL 或直接传 HTML）、尺寸（宽高）、位置坐标（x, y）、是否可调整大小、是否全屏、最小尺寸、隐藏窗口、无边框、阴影效果（仅限 Windows）、窗口置顶、关闭确认、背景颜色、透明、文本选择、缩放能力、拖拽能力、暗色模式等 ([pywebview.idepy.com](https://pywebview.idepy.com/guide/api?utm_source=chatgpt.com "API - pywebview中文文档"), [pywebview.flowrl.com](https://pywebview.flowrl.com/blog/pywebview6?utm_source=chatgpt.com "6.0 is here | pywebview - Example"))。
    
- `webview.start(...)` 启动 GUI 消息循环，可额外配置回调函数、调试模式、HTTP 服务器、用户代理、隐私模式、存储路径、本地化、菜单设置、图标、SSL 等参数 ([pywebview.idepy.com](https://pywebview.idepy.com/guide/api?utm_source=chatgpt.com "API - pywebview中文文档"))。
    

---

### 2. JavaScript ↔ Python 双向通信

- 通过 `js_api` 参数将 Python 对象暴露给 JavaScript，以便 JS 调用 Python 方法（返回 Promise）；也支持运行时调用： `window.expose(func)` ([pywebview.idepy.com](https://pywebview.idepy.com/guide/api?utm_source=chatgpt.com "API - pywebview中文文档"), [pywebview.flowrl.com](https://pywebview.flowrl.com/guide/usage?utm_source=chatgpt.com "Usage | pywebview - Example"))。
    

---

### 3. 内建 HTTP 服务器支持

- 自动为相对路径启动 Bottle HTTP 服务器；可在 `webview.start(http_server=True, ssl=True)` 中启用，并可传入自定义 WSGI 服务（如 Flask）作为 `url` 参数，或修改默认服务器的 SSL 行为 ([pywebview.flowrl.com](https://pywebview.flowrl.com/guide/usage?utm_source=chatgpt.com "Usage | pywebview - Example"), [pywebview.idepy.com](https://pywebview.idepy.com/guide/api?utm_source=chatgpt.com "API - pywebview中文文档"))。
    

---

### 4. DOM 操作能力

- 支持在 Python 端进行 DOM 操作，如元素创建、搜索、修改属性或样式，事件注册等，类似 jQuery 操作体验。提供 `window.dom` API，包括 `dom.body`、`dom.document`、`dom.create_element()`、`dom.get_element(s)`，并支持事件监听，如 click、scroll 等 ([pywebview.flowrl.com](https://pywebview.flowrl.com/blog/pywebview5.html?utm_source=chatgpt.com "5.0 has landed - pywebview - Example"))。
    
- 还支持拖拽文件，并获取完整文件路径 `event['dataTransfer']['files'][0]['pywebviewFullPath']` ([pywebview.flowrl.com](https://pywebview.flowrl.com/blog/pywebview5.html?utm_source=chatgpt.com "5.0 has landed - pywebview - Example"))。
    

---

### 5. 事件机制

- pywebview 5 引入 DOM 操作及基本事件支持（如 click 等）。
    
- pywebview 6 提供更先进的网络事件支持，包括 `request_sent` 和 `response_received`，可拦截并修改请求头，还新增 `initialized` 事件（GUI 渲染器选择前触发）可用于配置判定 ([pywebview.flowrl.com](https://pywebview.flowrl.com/blog/pywebview6?utm_source=chatgpt.com "6.0 is here | pywebview - Example"))。
    

---

### 6. 全新共享状态管理（v6）

- `window.state` 对象允许自动同步 JavaScript 和 Python 间的顶层属性状态，无需额外手动同步。例如在 Python 端设置 `window.state.user_name = "Test"`，在 JavaScript 中通过 `window.pywebview.state.user_name` 即可访问 ([pywebview.flowrl.com](https://pywebview.flowrl.com/blog/pywebview6?utm_source=chatgpt.com "6.0 is here | pywebview - Example"))。
    

---

### 7. 平台增强功能

- **Android 支持**：pywebview 5 开始支持 Android（虽然功能较限，如不支持文件对话框、多窗口、窗口控制，但基本功能可用）([pywebview.flowrl.com](https://pywebview.flowrl.com/blog/pywebview5.html?utm_source=chatgpt.com "5.0 has landed - pywebview - Example"))。
    
- **pywebview 6 优化 Android**：引入 Kivyless 实现，提高启动速度、减小包体，并支持全屏模式 ([pywebview.flowrl.com](https://pywebview.flowrl.com/blog/pywebview6?utm_source=chatgpt.com "6.0 is here | pywebview - Example"))。
    

---

### 8. 应用设置与 UI 菜单

- **应用级设置**（v5）：通过 `webview.settings` 定制行为，如控制文件下载、允许 file:// URL、外链跳转行为、调试模式下自动打开 DevTools 等 ([pywebview.flowrl.com](https://pywebview.flowrl.com/blog/pywebview5.html?utm_source=chatgpt.com "5.0 has landed - pywebview - Example"))。
    
- **窗口级菜单**（v6）：可以为每个窗口定义自定义菜单（Menu/MenueAction），类似桌面应用的菜单栏；部分平台（如 GTK + Unity）暂不支持 ([pywebview.flowrl.com](https://pywebview.flowrl.com/blog/pywebview6?utm_source=chatgpt.com "6.0 is here | pywebview - Example"))。
    

---

### 9. 平台尤其增强与现代化

- **现代化 API 调整**：pywebview 6 改进了 FileDialog 枚举、设置项存放路径、移除废弃 DOM API 等 ([pywebview.flowrl.com](https://pywebview.flowrl.com/blog/pywebview6?utm_source=chatgpt.com "6.0 is here | pywebview - Example"))。
    
- **平台特定增强**：
    
    - Windows：支持暗色模式自动识别
        
    - macOS：可隐藏默认菜单、更好的 JS prompt 支持
        
    - 全平台：改进屏幕坐标处理和 SSL 支持 ([pywebview.flowrl.com](https://pywebview.flowrl.com/blog/pywebview6?utm_source=chatgpt.com "6.0 is here | pywebview - Example"))。
        

---

## 三、总结表格

|功能分类|详细内容描述|
|---|---|
|窗口管理|多平台窗口创建与控制（尺寸、位置、样式等）|
|JS ↔ Python 通信|js_api 和 expose 提供双向调用|
|HTTP 服务器|内建 Bottle 服务器，可配置 SSL 与自定义 WSGI|
|DOM 操作|从 Python 端操作 DOM 元素、事件绑定、拖拽功能|
|事件机制|DOM 事件、网络请求事件、初始化事件|
|状态同步|自动同步 window.state（Python ↔ JS）|
|平台支持|Desktop 各平台 + Android，含特性差异|
|应用配置 & 菜单|settings 配置项 + 窗口级菜单|
|平台增强|暗色模式、JS prompt 优化、屏幕坐标、SSL 优化等|

---
