- 首先描述一下需求,小程序可以通过多种渠道进来,如:正常扫码进来或其他公众号引流进来等,现在需求是其他公众号进来会传过来一个参数,在本次进来小程序的所有操作中,跟后台交互都需带上这个参数,以便后期数据分析。
接下来说下我具体操作过程:
-
我最开始的想法的是在进来界面onLoad里面获取这个参数,然后保存到本地,然后在上传到地方统一加上这个参数,这样就很方便的解决问题了。
-
但是本地缓存是永久的(如果不删除小程序重新下载),这样就导致用户后续通过正常渠道打开小程序,还会被认为是公众号引流进来的,跟需求不符合。
-
然后就想着在用户离开的时候让储存参数置空,网上搜到很多说在app.js里面添加onHide监听,但是经过实测,发现有两个漏洞,一个是非正常离开(直接杀死微信等)是监听不到的,第二个问题是,如果手机熄屏、切换到其他app、拉下通知栏等都会触发onHide监听,这样记录下来的数据就会出问题。
-
在我打算一个界面一个界面传值的时候(太麻烦,工作量贼大)。
-
突然发现app.js里面有个onLaunch函数,然后就发现每次打开小程序都会触发这个函数,那么既然我不能在离开的时候置空,那么也可以在下次打开的时候置空,效果也是一样的。
-
另外说下,onLaunch函数只有在小程序被杀死后再次打开才会调用,右上角那个退出点击退出后立刻打开小程序是不会触发的。
网友评论