最近寫公司的一個微信小程序遇到了一個小問題,就是由于微信小程序自己的運行機制小程序不會主動被微信注銷導(dǎo)致的小程序不會在你退出小程序界面后自動unload,從微信小程序官方文檔上可以看到:
當退出小程序之后,此時小程序并非unload狀態(tài),而是處理onhide狀態(tài),那么該如何實現(xiàn)每次場景值為1001時,進入小程序主界面可以刷新界面呢? 這里我是采用了在app.js文件中設(shè)置一個全局變量scene用來記錄首頁頁面狀態(tài),初始值設(shè)為1,即用戶進入首頁后 scene = 1。如果用戶點擊跳轉(zhuǎn)到其它頁面,如A,則在首頁的 onhide函數(shù)中將其減一 scene -= 1,此時說明首頁被隱藏處于 onhide狀態(tài);當用戶從A返回到首頁后則將scene加一 scene += 1,此時說明首頁處于 onShow狀態(tài)。這樣處理之后,每次小程序頁面跳轉(zhuǎn)都會進行一次減一加一操作,然后保證首頁狀態(tài)在頁面跳轉(zhuǎn)時始終為1。然而,當用戶點擊返回退出小程序首頁后,scene等于0,則說明此時用戶已經(jīng)退出,小程序在后臺運行。 然后,在首頁的onShow函數(shù)中判斷 scene,如果 scene值為0時,則刷新小程序,設(shè)置相關(guān)data為初始值,重新從數(shù)據(jù)庫獲取。
scene狀態(tài)值 說明 部分代碼首頁.js
跳轉(zhuǎn)界面.js
|