uni-app的h5頁(yè)面中onHide/onUnload方法不觸發(fā)的問(wèn)題解決方法
背景
- 目的:對(duì)h5頁(yè)面進(jìn)行埋點(diǎn)過(guò)程中,需要對(duì)頁(yè)面瀏覽時(shí)長(zhǎng)進(jìn)行統(tǒng)計(jì),通過(guò)生命周期的監(jiān)聽(tīng)上傳埋點(diǎn)日志
- 預(yù)設(shè)方案:通過(guò)個(gè)頁(yè)面的onShow/onHide/onUnload生命周期對(duì)頁(yè)面的展示/隱藏/銷(xiāo)毀進(jìn)行監(jiān)聽(tīng)
- 問(wèn)題:僅在首頁(yè)正常觸發(fā)生命周期,通過(guò)跳轉(zhuǎn)進(jìn)入的其他頁(yè)面的onShow正常觸發(fā),onHide與onUnload不觸發(fā)
解決過(guò)程
- 推測(cè)原因:通過(guò)路由跳轉(zhuǎn)的頁(yè)面屬于二級(jí)頁(yè)面,而onHide與onUnload生命周期僅在一級(jí)頁(yè)面中存在
解決方法
- 二級(jí)頁(yè)面:
- onShow:正常使用該生命周期監(jiān)聽(tīng)頁(yè)面顯示,包括后臺(tái)進(jìn)前臺(tái)與路由跳轉(zhuǎn)進(jìn)入
- destroyed:用組件生命周期代替onHide與onUnload,監(jiān)聽(tīng)路由跳轉(zhuǎn)離開(kāi)
- app.vue:
- onHide:應(yīng)用生命周期對(duì)整個(gè)應(yīng)用的前臺(tái)進(jìn)入后臺(tái)進(jìn)行監(jiān)聽(tīng),通過(guò)url區(qū)分不同頁(yè)面的埋點(diǎn)日志上傳
示例代碼
// 一級(jí)頁(yè)面-首頁(yè)
onShow() {
this.$$DI.track('enter_page', {
page_name: '首頁(yè)'
})
},
onHide() {
this.$$DI.track('leave_page', {
page_name: '首頁(yè)'
})
},
onUnLoad() {
this.$$DI.track('leave_page', {
page_name: '首頁(yè)'
})
},
// 二級(jí)頁(yè)面
onShow() {
this.$$DI.track('enter_page', {
page_name: 'a頁(yè)面'
})
},
destroyed() {
this.$$DI.track('leave_page', {
page_name: 'a頁(yè)面'
})
}
// app.vue
onHide() {
let page_name
// 根據(jù)需要監(jiān)聽(tīng)的頁(yè)面路由進(jìn)行判斷添加
if(window.location.href.includes('basic')) page_name = 'a頁(yè)面'
if(page_name) {
this.$$DI.track('leave_page', {
page_name
})
}
},總結(jié)
到此這篇關(guān)于uni-app的h5頁(yè)面中onHide/onUnload方法不觸發(fā)的問(wèn)題解決方法的文章就介紹到這了,更多相關(guān)uni-app onHide/onUnload方法不觸發(fā)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript 模式之工廠模式(Factory)應(yīng)用介紹
工廠模式也是對(duì)象創(chuàng)建模式之一,它通常在類(lèi)或類(lèi)的靜態(tài)方法中去實(shí)現(xiàn),本文將詳細(xì)介紹JavaScript 工廠模式2012-11-11
使用 UniApp 實(shí)現(xiàn)小程序的微信登錄功能
這篇文章主要介紹了使用 UniApp 實(shí)現(xiàn)小程序的微信登錄功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06
javascript獲取所有同類(lèi)checkbox選項(xiàng)(實(shí)例代碼)
javascript獲取所有同類(lèi)checkbox選項(xiàng)的簡(jiǎn)單實(shí)例。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-11-11
Javascript動(dòng)態(tài)創(chuàng)建div的方法
這篇文章主要介紹了Javascript動(dòng)態(tài)創(chuàng)建div的方法,是javascript節(jié)點(diǎn)操作的典型應(yīng)用,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-02-02
js、jquery實(shí)現(xiàn)列表模糊搜索功能過(guò)程解析
這篇文章主要介紹了js、jquery實(shí)現(xiàn)列表模糊搜索功能過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
js判斷數(shù)組key是否存在(不用循環(huán))的簡(jiǎn)單實(shí)例
下面小編就為大家?guī)?lái)一篇js判斷數(shù)組key是否存在(不用循環(huán))的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-08-08
使用bootstrap3開(kāi)發(fā)響應(yīng)式網(wǎng)站
這篇文章主要為大家詳細(xì)介紹了使用bootstrap3開(kāi)發(fā)響應(yīng)式網(wǎng)站的具體代碼,感興趣的小伙伴們可以參考一下2016-05-05

