在 uni-app
微信小程序项目开发中,发现腾讯统计 mta
不上报数据。
1. 原因
uni-app
框架与mta
组件都对原生的Page
对象进行了重写,在onLoad
生命周期函数中上报数据,这一点开发者无感知- 因为
uni-app
框架会首先加载自身框架脚本,导致mta
后加载的脚本对Page
对象重写无效(两者冲突) - 所以,
mta
组件中设置了"autoReport": true
会导致数据不上报("autoReport": false
配置不受影响,因为不需要重写Page
)
uni-app 框架脚本重写 Page
:
var MPPage = Page;
Page = function Page() {var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
initHook('onLoad', options);
return MPPage(options);
};
mta-wechat-analysis.js 重写 Page
:
function initOnload() {
var a = Page;
Page = functio