uniapp开发浙政钉H5微应用埋点

具体可以查看官网,本文仅描述埋点的实现(我的项目是hBuilder新建的并非vue脚手架生成的,应该都是一样的)

index.html 

 pages.json中配置的第一项vue文件

		onShow() {
             set_MD(this.$route.meta, this.vuex_user.user) // todo 第二个参数根据实际情况修改
		},

pages/common/globalMd.js文件

/**
 * 用户信息埋点埋点统一代码(除了个别参数,整体格式也是比较固定)
 * 以下代码不可拆分,否则可能导致埋点只有部分成功
 * meta 和 dingUser 是业务参数,每个人各不相同,根据你自己的项目来决定
 * */
export default function set_MD (meta, dingUser) {
    let nickName = dingUser.nickName || 'xxxx';
    let userId = dingUser.accountId || "111111";
    (function (w, d, s, q, i) {
        w[q] = w[q] || [];
        var f = d.getElementsByTagName(s)[0], j = d.createElement(s);
        j.async = true;
        j.id = 'beacon-aplus';
        j.src = 'https://alidt.alicdn.com/alilog/mlog/aplus_cloud.js';
        f.parentNode.insertBefore(j, f);
    })(window, document, 'script', 'aplus_queue');

    // 如采集用户信息是异步行为需要先执行这个BLOCK埋点
    aplus_queue.push({
        action: 'aplus.setMetaInfo',
        arguments: ['_hold', 'BLOCK']
    });

    // 单页应用 或 “单个页面”需异步补充PV日志参数还需进行如下埋点:
    aplus_queue.push({
        action: 'aplus.setMetaInfo',
        arguments: ['aplus-waiting', 'MAN']
    });

    // 单页应用路由切换后 或 在异步获取到pv日志所需的参数后再执行sendPV:
    aplus_queue.push({
        'action':'aplus.sendPV',
        'arguments':[{
            is_auto: false
        }, {
            // 当前你的应用信息,此两行请勿修改
            sapp_id: 'sapp_id上架申请通过后官方人员会发',
            sapp_name: 'sapp_name上架申请通过后官方人员会发',
            page_id: 'xxxxx_' + meta.pagePath,
            page_name: meta.name,
            page_url: meta.pagePath
        }]
    })

    // 设置用户昵称
    aplus_queue.push({
        action: "aplus.setMetaInfo",
        arguments: ["_user_nick", nickName]
    });

    // 设置用户ID
    aplus_queue.push({
        action: "aplus.setMetaInfo",
        arguments: ["_user_id", userId]
    });

    // 如采集用户信息是异步行为,需要先设置完用户信息后再执行这个START埋点
    // 此时被 block 住的日志会携带上用户信息逐条发出
    aplus_queue.push({
        action: 'aplus.setMetaInfo',
        arguments: ['_hold', 'START']
    })
}
// 切记需要保证上面代码执行时page_id、page_name、page_url、nickName、userId五个参数不是空的

你可能感兴趣的:(uniapp,uni-app,前端,javascript)