minishouyin/doc/PROBLEM_SOLVED.md
LIUFL a094f55890 docs: 整理文档并删除测试脚本
将文档统一整理到doc目录下,删除不再需要的测试脚本和临时文件
2025-11-12 16:12:40 +08:00

89 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 迷你收银台 - 问题说明与解决方案
## 问题描述
为什么Web页面 (http://localhost:3000/) 正常,但使用"启动收银台.bat"启动后无法正常工作?
## 问题原因分析
### 1. 运行方式不同
- **Web开发模式** (`npm start`): 启动一个Web服务器通过浏览器访问
- **桌面应用模式** ("启动收银台.bat"): 启动Electron桌面应用创建独立的桌面窗口
### 2. 环境差异
- Web开发模式使用浏览器环境具有完整的Web API支持
- 桌面应用模式使用Electron环境某些浏览器功能可能受限
### 3. 权限和安全限制
- 桌面应用模式可能存在文件访问权限问题
- GPU加速在某些系统上可能不兼容
## 解决方案
### 1. 窗口显示增强
`src/main/main.js` 中增加了多重窗口显示保障机制:
- `ready-to-show` 事件处理
- `did-finish-load` 事件处理
- 窗口焦点管理
- 加载失败重试机制
### 2. 环境变量优化
在 "启动收银台.bat" 中设置了更多Electron环境变量
- `ELECTRON_DISABLE_GPU=1` - 禁用GPU加速避免兼容性问题
- `ELECTRON_NO_SANDBOX=1` - 禁用沙盒模式解决权限问题
- `ELECTRON_DISABLE_SANDBOX=1` - 进一步禁用沙盒
- `ELECTRON_ENABLE_LOGGING=1` - 启用详细日志
### 3. 错误处理改进
- 增加了详细的错误日志输出
- 添加了页面加载失败的重试机制
- 增强了图标加载失败的处理
## 使用说明
### 开发模式
```bash
npm start
```
然后在浏览器中访问 http://localhost:3000/
### 桌面应用模式
双击运行 "启动收银台.bat" 文件
### 构建项目
```bash
npm run build
```
## 常见问题
### 1. 图标加载失败
这是正常现象,不会影响应用功能。应用会使用默认图标。
### 2. GPU缓存错误
已通过禁用GPU加速解决不影响应用功能。
### 3. 窗口不显示
如果遇到窗口不显示的问题,请检查:
- 确保没有其他实例正在运行
- 检查任务管理器中是否有残留进程
- 重新构建项目后再次尝试
## 技术细节
### 项目结构
```
src/
├── main/ # Electron主进程代码
├── renderer/ # 渲染进程代码
├── server/ # 本地服务器代码
└── assets/ # 静态资源文件
```
### 启动流程
1. "启动收银台.bat" 设置环境变量
2. 启动本地服务器 (端口3000或3001)
3. 启动Electron应用
4. Electron应用加载本地服务器内容
5. 显示主窗口
如有其他问题,请查看详细日志或联系技术支持。