最近公司写的一个微信小程序遇到了一个小问题,就是小程序自身的运行机制导致的小程序不会被微信主动注销,退出小程序界面后不会自动卸载,从微信小程序的官方文档可以看到:
退出小程序后,小程序此时不处于卸载状态,而是处于待命状态。那么如何实现每次场景值为1001就可以进入小程序主界面刷新界面呢?
这里我曾经在app.js文件中设置一个全局变量scene来记录首页的状态,初始值设置为1,也就是用户进入首页后scene=1。如果用户点击跳转到其他页面,比如A,在首页的onside功能中会减少一个场景-=1,表示首页处于隐藏在onside状态;当用户从A返回到主页时,逐场景添加=1,这意味着主页处于onShow状态。经过这个过程,小程序的每一次页面跳转都会被减一加一,然后页面跳转时主页的状态总是1。但是当用户点击返回退出小程序主页时,场景等于0,表示此时用户已经退出,小程序在后台运行。
然后,在主页上的onShow功能中判断场景。如果场景值为0,刷新小程序,将相关数据设置为初始值,再次从数据库中获取。
场景状态值表示1主页处于打开状态,0主页处于关闭状态。