main.html 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Document</title>
  6. <script src="https://cdn.jsdelivr.net/npm/rrweb@latest/dist/rrweb.min.js"></script>
  7. <script src="https://cdn.jsdelivr.net/npm/rrweb-player@latest/dist/index.js"></script>
  8. <link href="https://cdn.jsdelivr.net/npm/rrweb-player@latest/dist/style.css" rel="stylesheet" />
  9. </head>
  10. <body>
  11. 这是一个空页面
  12. <button id="btn" data-track>点击我</button>
  13. <div>操作系统: <span id="os"></span></div>
  14. <div>用户唯一标识: <span id="userId"></span></div>
  15. <button onclick="startRecording()">开始录制</button>
  16. <button onclick="stopRecording()">停止录制</button>
  17. <button onclick="replay()">回放录制</button>
  18. <div id="replay"></div>
  19. </body>
  20. <script src="buriedPoint.js"></script>
  21. <script>
  22. // 展示操作系统和用户唯一标识
  23. document.addEventListener('DOMContentLoaded', function () {
  24. document.getElementById('os').innerText = JSBridge.getOS();
  25. JSBridge.getUserId(function (userId) {
  26. document.getElementById('userId').innerText = userId;
  27. });
  28. });
  29. const tracker = new Tracker({
  30. baseUrl: 'http://192.168.3.9:3000/api/log',
  31. heartbeatInterval: 5000,
  32. });
  33. tracker.init();
  34. </script>
  35. <script>
  36. let events = [];
  37. let stopFn = null;
  38. function startRecording() {
  39. events = []; // 清空之前的记录
  40. stopFn = rrweb.record({
  41. emit(event) {
  42. events.push(event);
  43. }
  44. });
  45. alert("开始录制用户会话");
  46. }
  47. function stopRecording() {
  48. if (stopFn) {
  49. stopFn(); // 停止录制
  50. alert("已停止录制,共记录 " + events.length + " 个事件");
  51. }
  52. }
  53. function replay() {
  54. if (!events.length) {
  55. alert("请先录制会话!");
  56. return;
  57. }
  58. // 清空旧回放
  59. document.getElementById('replay').innerHTML = '';
  60. // 创建播放器
  61. new rrwebPlayer({
  62. target: document.getElementById('replay'),
  63. props: {
  64. events: events,
  65. width: 800,
  66. height: 600,
  67. }
  68. });
  69. console.log('event', event);
  70. }
  71. </script>
  72. </html>