uniapp引入H5调试vConsole

发布时间 2023-10-24 10:39:44作者: 时光独醒

在真机环境下调试移动端H5的时候,无法像浏览器一样打开控制台进行console调试,那么我们可以在前端项目中引入vconsole,便于我们在真机环境下调试移动端H5项目

vConsole是一个轻量、可拓展、针对手机网页的前端开发者调试面板。

详细文档可查看:https://gitee.com/mirrors/vConsole/

功能特性

  日志(Logs): console.log|info|error|…
  网络(Network): XMLHttpRequest, Fetch, sendBeacon
  节点(Element): HTML 节点树
  存储(Storage): Cookies, LocalStorage, SessionStorage
  手动执行 JS 命令行
  自定义插件

方法一:使用 npm(推荐)

npm install vconsole

在app.vue中处理

import urlConfig from "@/utils/urlConfig";
// #ifndef MP
    import VConsole from 'vconsole';
    // #endif
    let vConsole = null; //移动H5调试器
export default {
   onLaunch: function() {
            // #ifndef MP
            this.loadVConsole();
            // #endif
    },
   methods: {
      loadVConsole() { //初始化vConsole,用于H5调试用
                if (urlConfig.isVConsole) { //开启调试时
                    let systemInfo = getSystemInfo();
                    if (!(systemInfo.uniPlatform == 'app' || systemInfo.uniPlatform == 'web')) { // 当为app或者H5时
                        return;
                    }
                    vConsole = new VConsole({
                        defaultPlugins: ['system', 'network', 'element', 'storage'],
                        // 可以在此设定要默认加载的面板
                        maxLogNumber: 1000,
                        // disableLogScrolling: true,
                        onReady: () => {
                            console.log('vConsole: onReady');
                            // 置顶最高层级
                            var vcSwitch = document.getElementsByClassName('vc-switch')[0];
                            vcSwitch.style.zIndex = '9999999999';
                            var vcMask = document.getElementsByClassName('vc-mask')[0];
                            vcMask.style.zIndex = '9999999999';
                            var vcPanel = document.getElementsByClassName('vc-panel')[0];
                            vcPanel.style.zIndex = '9999999999';
                            // console.log(vcSwitch, vcMask, vcPanel)

                            console.log(this.globalData.systemInfo)
                        },
                        onClearLog: () => {
                            console.log('vConsole: onClearLog');
                        }
                    });
                }
            },
            destroyVConsole() {
                // 结束调试后,可移除掉
                vConsole.destroy();
            }
       }
}

通过urlConfig.js控制是否显示

var service = {
    sType: 'testB', //环境类型:exploit-开发环境,testB-测试环境,uat-uat环境,prod-生产环境
    // sType: 'exploit',
    // sType: 'uat',
    // sType: 'prod',
    miniVersionTime: '2023-05-22 15:20', //发版时间
    miniVersionNumber: "1.0.1", //小程序版本号
    isVConsole: false, //是否开启移动H5调试器
}
module.exports = {
    sType: service.sType,
    miniVersionTime: service.miniVersionTime,
    miniVersionNumber: service.miniVersionNumber,
    isVConsole: service.isVConsole,
}

 

手机效果: