dxScreenshot
1. 概述
dxScreenshot 是一个为 DejaOS UI 应用程序开发的高级截屏辅助模块。
它提供了一种简单的方法来:
- 通过简单的初始化配置截屏上传行为。
- 自动启动后台进程处理文件上传。
- 手动截屏或将其绑定到 UI 交互(例如:双击屏幕)。
- 自动捕捉并上传运行设备上的 UI 截图,用于调试和远程诊断。
2. 相关文件
dxScreenshot.js– UI 代码中使用的主要 JavaScript 辅助模块。screenshotworker.js– 处理扫描和上传的后台进程脚本。
确保这两个文件都放在项目根目录下的
dxmodules子目录中(例如/app/code/dxmodules/)。
3. 依赖项
dxScreenshot 要求在项目中启用以下 DejaOS 模块:
dxLoggerdxStddxMapdxNetworkdxHttpClientdxEventBus
4. 兼容设备
兼容所有运行 dejaOS v2.0+ 并启用了 DejaOS UI 引擎 (dxUi) 的设备。
5. 工作原理
dxScreenshot 模块在后台运行,以确保您的 UI 保持响应:
- 捕捉:当您触发截屏(手动或通过双击)时,模块会捕捉当前的 UI 状态并将其保存到设备的本地存储中。
- 上传:后台进程会自动监控本地存储,并在网络连接可用时将任何待处理的截图上传到您配置的服务器。
- 清理:为了节省空间,截图在成功上传后会自动从设备中删除。
6. 配置与存储
- 本地存储:截图临时存储在
/app/data/snapshot/。 - 上传设置:所有上传行为(URL、网络设置)都在初始化期间通过
DxScreenshot.init()配置一次。
7. API 参考
所有函数均通过默认导出对象 DxScreenshot 提供。
7.1 DxScreenshot.init(options)
初始化截屏工具并启动后台上传进程。这通常应该在主应用程序入口点调用一次。
参数:
options{Object}:uploadUrl{string}– 截图将上传到的 HTTP/HTTPS 端点。autoNet{boolean}(可选,默认:false) – 如果希望模块通过dxNetwork自动管理网络连接(以太网/Wi-Fi),请设置为true。netType{"eth"|"wifi"}(可选) – 如果autoNet为true,则为必填项。ssid{string}(可选) – Wi-Fi SSID(Wi-Fi 自动联网模式必填)。password{string}(可选) – Wi-Fi 密码(Wi-Fi 自动联网模式必填)。
7.2 DxScreenshot.screenshot(view, fileName)
手动捕捉指定的 UI 视图并将其保存到本地存储以供后续上传。
参数:
view{object}– 要捕捉的 UI 视图对象(必须支持.snapshot()方法)。fileName{string}– 截屏文件的目标名称(例如:"error_report.png")。