微信小程序中的常见入口场景及解决方案
最近一直在做小程序,虽然是第二次做,但距离上次已经一年了,结果还是踩了不少坑。这次是从零开始,除了遇到一些莫名其妙的兼容性问题,大部分坑都集中在微信小程序的入口场景上。今天就来聊聊这些常见的入口场景,以及如何应对这些问题。
启动小程序并进入
这是最常见的进入小程序的方式,比如通过搜索或点击最近使用的小程序进入。在这种场景下,有几个关键点需要注意:
-
登录判断:登录不一定要在这个阶段完成,但登录信息的判断是必须的。通常,前端会将登录信息存储在小程序中,并在事件中判断是否登录。如果未登录,跳转到登录页面;如果已登录,跳转到首页。登录判断一定要放在
App
的onLaunch
中,而不是首页的onLoad
里,因为小程序启动时一定会进入App
,但不一定会进入首页。 -
请求处理:如果在
onLaunch
中发出请求,并在请求完成后进行页面跳转或设置,需要注意请求时间过长时,首页的onLoad
可能已经执行。为了避免这种情况,建议在onLaunch
中尽量避免复杂操作,或者使用加载页面来承载这些功能。 -
数据初始化:首页的数据初始化通常放在
onLoad
中执行,但有些特殊需求可能需要放在onShow
里。onLoad
和onShow
的区别在于,当载入首页时,先触发onLoad
,再触发onShow
。如果通过wx.navigateTo
跳转到其他页面,首页并没有被关闭,返回时不会触发onLoad
,但会触发onShow
。
退出重进小程序
这种场景下,退出小程序后再次进入时,会回到退出时的页面,而不会触发onLoad
,但会触发onShow
。需要注意onShow
中是否有不可重复执行的操作,比如获取用户喜欢吃的食物并加载到列表中。如果不加判断,可能会出现重复数据。
退出重进首页
通过扫二维码再次进入小程序时,会进入首页。除了需要注意退出重进小程序的问题,还需要关注onShow
中是否会触发奇怪的操作,比如页面跳转。
启动并进入指定页面
这种场景通常是通过小程序的分享卡片或微信通知消息进入小程序。与第一种场景不同,这里可能直接进入非首页的页面,且可能涉及复杂的业务功能。在设计阶段应尽量简化此处的业务逻辑,或加大估时。
-
登录判断:在
onLaunch
中判断是否登录,未登录则跳转到登录页面。登录成功后,应跳转到指定页面,而不是首页。因此,登录页面设计时需要传入一个参数,明确登录成功后跳转的页面。 -
返回首页功能:在跳转到指定页面的情况下,通常需要一个回到首页的按钮。比如通过邀请卡片进入文章详情页时,如果没有返回首页功能,用户可能无法回到首页。
涉及身份的邀请函
这种场景下,进入小程序时需要根据参数切换身份,可能涉及登录。比如打车软件中,用户可能是司机或乘客,且上次登录的身份会影响到本次登录。在这种情况下,建议在onLaunch
中获取身份信息,并根据身份跳转到相应页面。为了避免复杂逻辑,可以设计一个专门的加载页面来处理身份判断和页面跳转。
总结
以上几种场景基本涵盖了微信小程序的常见入口情况。整理这些场景的目的,主要是为了在需求和设计阶段避免遗漏,从而减少后期和维护的难度。所谓加班和项目延期,往往是因为前期考虑不周。我们无法考虑到所有场景,但应尽量做到尽善尽美。谋定而后动,前事不忘后事之师,这才是之道。