前言
最近一段时间都在做小程序。
虽然是第二次开发小程序,但是上次做小程序已经是一年前的事了,所以最终还是被坑得死去活来。
这次是从零开始开发一个小程序,其实除了一些莫名其妙的兼容性问题,大多数坑点都是在微信小程序的各个入口场景处。
所以这里整理一下微信小程序的各个入口场景,以及从这些入口场景进入小程序会面临的问题以及解决方案。
这里只列出常用的几种场景:
[简单场景]启动小程序并进入 [简单场景]退出重进(启动小程序后,退出小程序,再次进入小程序) [简单场景]退出重进首页(启动小程序后,退出小程序,通过扫二维码再次进入小程序) [复杂场景]启动并进入指定页面(从小程序的分享卡片或者微信发送的通知消息进入小程序) [复杂场景]退出重进指定页面(启动小程序后,退出小程序,从小程序的分享卡片或者微信发送的通知消息进入小程序)启动小程序并进入
微信小程序的入口场景光微信提供的场景值就有几十种,但是绝大多数都可以划分为启动小程序并进入。
这是最常用的一种进入小程序的方式,比如通过搜索进入或者点击最近使用小程序的方式进入,都算是这种类型。
这一场景下,首先我们需要明白发生了什么:
下载小程序 => 启动小程序 onLaunch事件触发 => 加载首页 onLoad事件触发 => 首页 onShow事件
然后在这个场景下,需要注意以下几个问题:
1.这个场景下一般会涉及到登录。
所谓登录,不一定是要在这个阶段做,但是登录信息的判断这个阶段是一定要做的。
通常前端肯定是要将登录的这些信息存储在小程序的storage里,然后在onLaunch事件中判断是否登录,没登录就跳转到登录页面,登录了就跳转到首页。
这里的登录判断一定要放在onLaunch,而不要放在首页的onLoad里面,因为小程序启动一定会进入onLaunch,而不一定会进入首页的onLoad。
2.而登录页面在设计的时候最好要加上一个url参数
传入登录成功后跳转到的页面地址,而不是登录之后始终跳转到首页,后面会讲为什么需要这么做。
3.onLaunch阶段是否有发出请求
并在请求完成后进行了页面跳转,或者请求完成设置storage,并在onLoad页面中使用?
这种情况的出现,会导致在请求时间过长时,首页的onLoad已经执行了,此时就会出现BUG。
对于这个问题,有的人会用定时器去判断是否完成这个操作,但是我的建议是尽量避免在onLaunch中进行这些操作。
如果一定要有,那么最好的方式就是做一个加载页面去承载这些功能。
新闻热点
疑难解答