收藏
回答

当进程中已经打开了一个携带参数的小程序,然后再次通过链接打开时,参数拿不到了?(安卓vivoX50)

描述:本身小程序上是携带的参数的,如果第一次点击小程序是可以通过页面中的onLoad(options)获取到的。如果通过这种方法打开后,再次通过点击链接进入参数就获取不到了, 而把进程里的当前小程序杀死,再点击链接进入参数就是可以拿到的

回答关注问题邀请回答
收藏

2 个回答

  • 丄譱叒氺🌊
    丄譱叒氺🌊
    2022-12-22

    如果未结束程序,应该再点击,其实就是把小程序从后台换醒到前台吧,这时应该没有参数传递的吧,

    解决方案可以在APP的onHide事件里面,发现进后台了,就把小程序直接结束掉:

    wx.exitMiniProgram();

    然后再打开的时候,就会走onLaunch事件,就能得到参数了, 不知道这样能不能满足业务需求。

    2022-12-22
    有用 1
    回复
  • 🇭 🇺 🇮
    🇭 🇺 🇮
    2023-06-08

    请问最后怎么解决了?

    wx.exitMiniProgram() 这个方法需要通过按钮人为触发实现。

    当用户直接关掉app,根本来不及触发弹窗让用户触发 exitMiniProgram()这个方法。

    2023-06-08
    有用
    回复 3
    • 🇭 🇺 🇮
      🇭 🇺 🇮
      2023-06-09
      我的业务:
      1. 我要通过分享的链接(带参数)给用户,用户点击我分享出去的链接,首次进来。正常获取到参数,加载界面。

      出现问题:
      2.  第二次 用户再次点击同样的链接,发现进来没有带参数。
      因为没有缺少参数,页面请求渲染错误。

      3. 解决:
           本地存储第一次进来的参数,比如。是什么类型的分享,你本地做个标记,这是 ”订单详情的分享“,然后把参数值给存好。
      再次点进来,就判断一下。 就能重新获取到参数了
      2023-06-09
      回复
    • 🇭 🇺 🇮
      🇭 🇺 🇮
      2023-06-09
      一开始 百度和社区 搜索怎么解决,第二点击参数缺失问题。
      这样子有时候这种解决问题,太莽撞了,就是不经过大脑,一股劲去百度。
      (其实一楼大哥已经给了实际性的解决方案了,但是不满足我的业务)


      我解决思路:
      1. 要好好理解页面生命周期。 小程序中的返回,手机的返回,触发页面哪个 生命函数。 第一点击来、第二次点进来,又触发了哪些 生命函数。

      当你冷静分析一波后,再结合自己的需求。 答案已经很接近了。
      2023-06-09
      回复
    • 丄譱叒氺🌊
      丄譱叒氺🌊
      2023-06-21
      其实个人理解,如果用户已经通过别人分享的链接进来了,他再次点击,如果这个小程序都还没有退出,那应该就还是当前的分享关系不变,这个在第一次进来的时候存储一下分享关系就可以了,再次连接点击进来后,就不用管了。 不管用什么方法,能解决问题最好。
      2023-06-21
      回复
登录 后发表内容