zoukankan      html  css  js  c++  java
  • rrweb手机端录屏,pc端使用

    rrweb使用指南:https://github.com/rrweb-io/rrweb/blob/master/guide.zh_CN.md

    本文是使用js文件引入的方式,vue项目,微信公众号。

    录屏端的使用:

    项目入口文件(index.html)引入

    <script src="https://cdn.jsdelivr.net/npm/rrweb@latest/dist/rrweb.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/rrweb-player@latest/dist/index.js"></script>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/rrweb-player@latest/dist/style.css">
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/rrweb@latest/dist/rrweb.min.css">

    需要录屏的界面添加录屏代码

     let events=[]   //全局定义,我在使用过程中未全局定义,导致数据大量重复,找不到清除上一次的时机,刚开始还误认为是插件的叠加。 
    rrweb.record({
      emit(event) {
        events.push({event,//event是rrweb生产的录屏信息,下面其它参数是项目实际需要,在别的使用场景中可忽略。
          fkValue:uuids,
          moduleCode: 'person_insurance',
          appCode:'001',
          userId:localStorage.getItem("openid")});
      },
    });
    setInterval(this.rrwebSave, 10*1000);
    rrwebSave() {
      this.axios.post("/webreplayapi/replay/collect",JSON.stringify(events)).then((res) => {
    
      }).catch((err) => {
    
      });
      events=[]
    }

    在需要播放的地方添加播放代码

    <script src="https://cdn.jsdelivr.net/npm/rrweb-player@latest/dist/index.js"></script>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/rrweb-player@latest/dist/style.css" />
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/rrweb@latest/dist/rrweb.min.css" />
                    let dom = document.getElementById("rrwebDom");
                    dom.innerHTML = "";
                    new rrwebPlayer({
                      target: dom, // 可以自定义 DOM 元素
                      data: {
                        events,//录屏数据
                        options: {
                          // skipInactive: false,
                          // loadTimeout:2000
                        },
                      },
                    });

    踩的小坑坑:
    1.不同的rrweb版本对录屏效果有所影响,需确保录屏和播放使用的版本一致。
    2.因为rrweb的本质是记录dom元素及复制dom中对应的css,所以如果是在移动端录制,在pc端播放,
    需要注意界面样式像素的处理。(本人在使用时,移动端用的是rem,pc端播放时无法正确解析rem,
    导致样式全部乱掉,因pc端框架限制,移动端最终讲所有单位改为px,如果荣幸有大牛看到这篇文章,希望给出更好的解决方案。

    3.如果在界面中使用了图片,需要将普通放在一个公共的都可以读取的服务器上,如果使用了绝对
    或相对路径的话,在另一个项目中做录屏播放时,图片将无法加载。因为rrweb它只是单纯的复制dom。

    
    
     
     
     
     
  • 相关阅读:
    C++ 动态库导出函数名“乱码”及解决
    ASP.NET 4.5 Bundle组件(捆绑、缩小静态文件)
    MVC4 + WebAPI + EasyUI + Knockout-授权代码维护
    关于Grunt可视化的尝试
    Object-c学习之路三(@class与#import的区别)
    2.1 以指定的次序返回查询结果
    进程序名得到进程ID和句柄与进程的公司名(使用快照和GetPeFileCompany和VerQueryValueW等函数)
    在资源里面画出你的界面
    VS2008下WinRar源码生成dll和 lib总结
    进程占用百分百CPU不卡(从未试过,当别的程序运行的时候,当前程序还会运行吗?)
  • 原文地址:https://www.cnblogs.com/cxdxm/p/13856969.html
Copyright © 2011-2022 走看看