在 Electron 中使用 OpenReplay
将 OpenReplay 集成到 Electron 应用中有两种不同的方式。
无论你选择哪一种,都需要检查你的 CSP 设置,以允许以下 API:
- WebWorkers(用于存储、编码和发送消息批次)
- Websockets(用于 assist 插件实时传输会话)
- Peers(用于 assist 插件的通话)
添加代码片段
Section titled 添加代码片段你可以将 OpenReplay 代码片段直接添加到应用 HTML 文件的根部。 这是最简单的方式,但它也带有 JS 代码片段的所有限制。
使用 NPM 库
Section titled 使用 NPM 库如果你使用 React、Angular 或 Vue,你可以采用完全相同的方式,在应用内的渲染进程中创建 tracker 实例。 这将使你能够使用 OpenReplay 的所有功能,包括所有插件。
若要在渲染上下文之外使用 tracker API,你需要通过 IPC,借助从主进程发送的事件来触发相应的操作。
与 Assist 插件配合使用
Section titled 与 Assist 插件配合使用对于 Tracker-Assist 插件,你需要添加 socketHost 属性,使其指向不带 /ingest 后缀的接入点,以确保默认的 WS 路由正确无误。
对于 NPM 库:
new Tracker({ ingestPoint: 'https://mywebsite.com/ingest' })
// ...
// or https://app.openreplay.com if you're using SaaS version
tracker.use(trackerAssist({ socketHost: 'https://mywebsite.com' }))
对于代码片段:
var initOpts = {
projectKey: "...",
ingestPoint: "https://mywebsite.com/ingest",
assistSocketHost: "https://mywebsite.com"
};
否则,WS 将尝试在 ws://file/ingest 上创建连接,从而导致失败。