实现原理:
通过在app.js中重写App与Page方法来得到小程序生命周期函数与各页面属性,并重新执行它们。
代码如下:
//app.js
var BiData = {
wxApp: App,
wxPage: Page,
rewriteApp: function (e) {
return BiData.wxApp(BiData.instrument(e))
},
rewritePage: function (e) {
return BiData.wxPage(BiData.instrument(e))
},
appHandlerFuns: ['onshow', 'onLanch', 'onError'],
pageHandlerFuns: ['onshow', 'onLanch', 'onError'],
log(funName, self, argvs) {
console.log("打点开始【【")
console.log("方法名称:" + funName)
console.log("参数:")
console.log(argvs[0])
console.log("页面:" + (self.route ? self.route : 'APP中的方法'))
console.log("】】打点结束")
},
hook: function (funName, callback) {
var c = callback;
return function () {
BiData.log(funName, this, arguments)
c.apply(this, a