收藏
回答

小程序启动参数,在点击右上角胶囊——点击重新进入小程序后,不会被清除,如何解决?

注意:这个bug和 冷启动 / 热启动 / 获取参数API 无关,是“重新进入小程序”入口特有的bug。

复现步骤:

  1. 携带启动参数进入小程序,如扫码二维码(onLaunch / onShow / wx.getLaunchOptionsSync / wx.getEnterOptionsSync 都可以拿到,值一样)。
  2. 根据启动参数,执行对应的业务逻辑。
  3. 用户手动点击右上角胶囊——点击重新进入小程序。
  4. 重新进入后,会始终保留第1步的启动参数(onLaunch / onShow / wx.getLaunchOptionsSync / wx.getEnterOptionsSync 都可以拿到,值一样)。这会导致重复执行第2步的业务逻辑,产生预期外的副作用。

期望表现:

“点击右上角胶囊——点击重新进入小程序” 这个行为是冷启动,按道理应该和其他的冷启动表现一致,即不保留上一次的启动参数。

如果官方解决不了,至少应该给一个场景值能区分 “点击重新进入小程序” 的 onLaunch 和其他入口的 onLaunch;或者暴露给开发者清除启动参数的API,用完即删。

社区很多人提到过启动参数的问题,初始化流程对业务实现的重要性不言而喻,请官方重视。

回答关注问题邀请回答
收藏
登录 后发表内容