2.5 KiB
2.5 KiB
迷你收银台 - 问题说明与解决方案
问题描述
为什么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. 错误处理改进
- 增加了详细的错误日志输出
- 添加了页面加载失败的重试机制
- 增强了图标加载失败的处理
使用说明
开发模式
npm start
然后在浏览器中访问 http://localhost:3000/
桌面应用模式
双击运行 "启动收银台.bat" 文件
构建项目
npm run build
常见问题
1. 图标加载失败
这是正常现象,不会影响应用功能。应用会使用默认图标。
2. GPU缓存错误
已通过禁用GPU加速解决,不影响应用功能。
3. 窗口不显示
如果遇到窗口不显示的问题,请检查:
- 确保没有其他实例正在运行
- 检查任务管理器中是否有残留进程
- 重新构建项目后再次尝试
技术细节
项目结构
src/
├── main/ # Electron主进程代码
├── renderer/ # 渲染进程代码
├── server/ # 本地服务器代码
└── assets/ # 静态资源文件
启动流程
- "启动收银台.bat" 设置环境变量
- 启动本地服务器 (端口3000或3001)
- 启动Electron应用
- Electron应用加载本地服务器内容
- 显示主窗口
如有其他问题,请查看详细日志或联系技术支持。