89 lines
2.5 KiB
Markdown
89 lines
2.5 KiB
Markdown
# 迷你收银台 - 问题说明与解决方案
|
||
|
||
## 问题描述
|
||
为什么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. 显示主窗口
|
||
|
||
如有其他问题,请查看详细日志或联系技术支持。 |