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

2.5 KiB
Raw Blame History

迷你收银台 - 问题说明与解决方案

问题描述

为什么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/        # 静态资源文件

启动流程

  1. "启动收银台.bat" 设置环境变量
  2. 启动本地服务器 (端口3000或3001)
  3. 启动Electron应用
  4. Electron应用加载本地服务器内容
  5. 显示主窗口

如有其他问题,请查看详细日志或联系技术支持。