Skip to content
starTechnology1994 edited this page Aug 7, 2026 · 1 revision

11 疑难解答

常见问题、调试手段与排错思路。


1. 快速定位问题

1.1 打开 DevTools(Ctrl+F12)

调用 ToggleDevTools()(蓝图/C++,见 03-WebNativeWidget 参数配置)打开 Chromium DevTools,或通过远程调试端口在 Chrome/Edge 中调试:

DevTools 调试窗口
图 11-1 DevTools 调试窗口

远程调试端口范围由 06-CEF 参数配置debugging_port_min/max 控制(默认 9223–9262,0 表示禁用)。

1.2 性能监视器

配置 show_cef_performance_monitor=true 后,浏览器左上角显示实时 FPS / 内存 / 渲染模式叠加层,用于快速判断瓶颈在网页还是 UE:

CEF 性能监视器
图 11-2 CEF 性能监视器

1.3 日志位置

  • CEF 日志:<Project>/Saved/Logs/cef/
  • UE 日志:<Project>/Saved/Logs/<Project>.log

2. 常见问题

WebNativeBrowser 和 UE 自带 Web Browser 有什么区别?

WebNativeBrowser 面向复杂、跨平台和产品化的 Web UI 场景,提供 JS ↔ UE 消息、Linux/ARM64、中文输入、透明交互、上传下载、权限和配套调试等能力。最终选择应基于项目目标、平台和实际验证。

能直接运行 Vue/React 源码吗?

完美兼容,通常加载前端开发服务器或前端构建结果。支持离线包,在线网址

网页对象发送到 UE 后是什么类型?

UE 收到字符串。JS 对象会被转换为 JSON 字符串;UE 按业务需要解析。

UE 发 JSON 后,JS 为什么不是对象?

UE → JS 的公开消息体始终是原始字符串。只有业务明确知道它是 JSON 时,才在 JS 中调用 JSON.parse()

消息可以直接创建 UE 对象吗?

可以在 UE 收到业务消息后触发相应逻辑。消息自动回调到主线程,UObject 和场景操作应在 UE 游戏线程执行。

支持从 Web 拖拽或点击资源到 UE 场景吗?

支持。参见 04-高级交互。插件负责打通 Web 与 UE 的交互基础能力;最终 Actor 类型、射线检测、预览、吸附、碰撞、权限和生成规则由项目蓝图/C++ 控制。

支持中文和 emoji 吗?

通道按文本处理,支持普通 Unicode 文本,包括中文和 emoji。它不是二进制通道;二进制数据应使用文件或网络传输。

Linux 支持中文输入吗?

支持。不同发行版、桌面环境和输入法组合仍应按兼容性表实测,参见 10-Linux 中文支持

Linux 应该使用单进程还是多进程?

先使用产品针对目标环境的推荐值。部分国产 CPU/GPU 媒体环境需要兼容性优先模式(linux_single_process=true);标准环境可验证多进程模式。切换后需要完整重启。

支持无桌面的 Linux 吗?

浏览器运行与"本机弹出交互窗口"是两个问题。无桌面部署应针对输入、窗口和文件流程单独设计。像素流送远端用户的文件上传应在远端浏览器完成。

支持多个浏览器和应用多开吗?

支持。一个 UE 应用可创建多个 WebNativeBrowser 控件,同一打包程序也可同时启动多个独立实例。实际并发规模取决于网页、视频、分辨率、CPU、GPU 和内存,发布前应按目标硬件进行容量测试。

可以和 Unreal Engine Pixel Streaming 一起使用吗?

可以组合使用,Web UI 会作为 UE 最终画面的一部分输出。远端键鼠、触摸和焦点以项目 Pixel Streaming 输入配置为准,参见 09-云渲染支持

支持所有网站吗?

不能承诺所有第三方网站。登录、跨域、证书、iframe、CSP、DRM、扩展依赖和网站策略都可能影响结果,请对目标网站实测。

页面不刷新或消息看起来很慢怎么办?

  • 避免每条高频消息都修改 DOM。
  • 合并状态后按帧或业务周期更新。
  • 不打印完整大对象。
  • 检查页面本身的定时器和渲染开销。
  • 使用最小页面区分网页性能与 UE 业务性能。

页面加载后 window.WebNative 未定义?

  • 确认页面已加载完成(监听 DOMContentLoaded 后再调用)。
  • 确认加载的是插件承载的页面,而非外部独立浏览器。
  • 用 DevTools 查看 Console 是否有报错。

鼠标点击穿透没有生效?

  • 确认 Widget 开启了 bEnableMouseTransparency
  • 检查 MouseTransparencyAlphaThreshold:页面透明区域像素 alpha 必须低于阈值。
  • 确认没有其他 Widget/焦点抢占输入。

升级插件时能直接覆盖旧目录吗?

不建议。关闭编辑器,备份配置,完整移除旧插件目录,再复制新版本,避免旧二进制或资源残留。


3. 如何提交有效问题

提供以下信息:

  • WebNativeBrowser 版本(如 v1.0.0)
  • UE 版本、平台架构、系统
  • CPU / GPU / 驱动版本
  • Development 或 Shipping 构建
  • 最小复现步骤
  • 脱敏后的日志(Saved/Logs/cef/ 与 UE 日志)

⚠️ 不要上传授权文件、机器码文件或客户数据到公开渠道,请通过商务渠道处理。


下一步

Clone this wiki locally