网友真实露脸自拍10p,成人国产精品秘?久久久按摩,国产精品久久久久久无码不卡,成人免费区一区二区三区

小程序模板網

小程序自動埋點教程

發布時間:2018-12-04 11:51 所屬欄目:小程序開發教程

在這個大數據的時代里,數據是一個互聯網發展的核心,除了對客戶分析重要之外,公司對自己的產品能否客觀的掌控也十分重要。

埋點的意思是在項目關鍵位置注入代碼,代碼會向服務器發送設備信息、用戶操作、時間點等信息。

代碼埋點

最簡單實現埋點的方法,是讓開發者在需要的地方添加一句代碼,用來向服務器發起請求,匯報情況

自動埋點

埋點的代碼和業務邏輯的代碼是沒有直接聯系的,如果讓開發者手動的在項目中添加代碼,會增加項目耦合。不僅開發者麻煩,后期維護也增加了難度。所以能通過引入外部代碼,自動在最常用的位置注入埋點,是更合理的一種手段。

就web端而言,一般選擇的注入點有:頁面加載完成、用戶點擊鏈接、登錄登出等場景。

小程序生命周期

小程序App函數有:onLaunch、onShow、onHide、onError、onPageNotFound五個周期方法,小程序啟動時會走onLaunch方法。

小程序有后臺機制,當用戶關閉當前小程序,回到微信頁面時,小程序不會直接結束進程,而是到內存占用到了一定量后,微信會自動對小程序進行銷毀。

onShow與onHide兩個方法對應的就是小程序前后臺轉換,當用戶從微信到小程序時,onShow會被調用;反之,用戶從小程序到微信界面時,會調用onHide。

小程序每個頁面都是一個Page,每個Page有:onLoad/onReady/onShow/onHide/onUnload/onShareAppMessage/onPullDownRefresh等等周期方法。

小程序埋點

在小程序各個生命周期埋點,可以有效的收集到用戶操作數據,正常小程序開發者,這些周期方法都是由開發者聲明的。開發者可以在周期方法中寫入匯報服務器代碼,但就像之前說的,通過外部代碼實現這一功能會是更好的選擇。

所以我們需要一些功能代碼,實現自動注入埋點。

App與Page函數

小程序像是一個定制的webview,打開App時,小程序首先會調用聲明的App函數,所以我們可以通過劫持App函數,注入埋點。

var oldApp = App
App = function(args) {
    ... // 改寫周期方法
    oldApp(args)
}
復制代碼

如以上代碼所示,劫持App函數后,進行改寫周期函數,最后運行真正的App函數。 args及為小程序app.js中配置的模型,包含了App的周期函數和globalData對象,例如,要在onLaunch方法中注入埋點:

其他的周期方法,也可以用這種方式進行改寫。

function customLaunch(opt) {
    track() // 向服務器匯報
}
var oldLaunch = args.onLaunch
args.onLaunch = function(opt) {
    if (oldLaunch) { // 如果小程序開發者有聲明
        oldLaunch.call(this, opt)
    }
    customLaunch.call(this, opt) // 自定義周期方法
}
復制代碼

擴展自動埋點

每個應用的需求都會不一樣,所以也需要給自動埋點賦予自定義埋點的能力。 在每個page的index.js中,我們可以用 getApp() 方法獲取到小程序全局對象,App函數中的this指向的就是這個全局對象,所以我們可以在上面代碼塊中定義自定義埋點方法:

--- app.js
args.onLaunch = function(opt) {
    this[track] = function() {
        ... // 自定義埋點代碼
    }
    ...
}

--- Page的index.js
var app = getApp()
app.track(name) // 發送自定義報文
復制代碼

小程序天然的生命周期相對于web應用來說,對埋點需求友好很多,如何控制和實現可視化埋點是我們需要努力的方向。



易優小程序(企業版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://www.xiuhaier.com/wxmini/doc/course/24993.html 復制鏈接 如需定制請聯系易優客服咨詢:800182392 點擊咨詢
QQ在線咨詢
AI智能客服 ×