收藏
回答

wx.shareAppMessage 使用时遇到这样的问题,如何解决实时获取?

在A手机上 调用分享功能代码,

wx.shareAppMessage({query: ‘aa=1’});


在B手机上获取分享参数值 :

var launch = wx.getLaunchOptionsSync();

var bb  = launch.query.aa;

console.log(bb);//此时打印的值为1


然后第二次:

在A手机上 调用分享功能代码,

wx.shareAppMessage({query: ‘aa=2’}); //已经确认传出去的值是2而不是1

在B手机上获取分享参数值 :

var launch = wx.getLaunchOptionsSync();

var bb  = launch.query.aa;

console.log(bb);//此时打印的值为1而不是2;



以上是我在开发中遇到的问题,就是说获取分享的参数永远是第一次的参数值,而不是后来的参数值,这个问题如何解?


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

1 个回答

  • 空瓶子
    空瓶子
    2019-10-21

    我试了一下,没有你出现的问题,这里有两个点你参考一下吧:

    (1)首先确认一下,是不是本地缓存的原因,你A手机第二次分享给B后,B手机需要先把快捷栏中的图标删掉,然后再重新打开A分享出来的卡片试试;

    (2)如果还不行,可以在wx.onShow中的回调函数中去获取这个aa参数,经测试,这样是没问题的。

    2019-10-21
    有用
    回复 8
    • hejl
      hejl
      2019-10-21
      从快捷栏中删除后整个应用放在缓存中的数据也会随之清除的,因此从快捷栏删除是不存在这个问题,因此感觉query这个参数是从缓存中取的,可是我的应用场景是需要每次拿到的数据都是传过来的最新数据
      2019-10-21
      回复
    • hejl
      hejl
      2019-10-21
      我目前获取参数的地方就是在 wx.onshow 里面进行获取的
      2019-10-21
      回复
    • 空瓶子
      空瓶子
      2019-10-21回复hejl
      你的业务应用场景是怎么样的?为什么针对同一个用户,分享出来的参数会变?
      2019-10-21
      回复
    • hejl
      hejl
      2019-10-21回复空瓶子
      A用户发起挑战,转发给一个用户一个参数,B用户拿到这个参数后,两个用户就关联进一个会话,然后进行对战, 目前就是第一次能关联在一起, 第二次A用户发起挑战的时候给同一个用户就无法关联了
      2019-10-21
      回复
    • 空瓶子
      空瓶子
      2019-10-21回复hejl
      嗯,我大概理解了,发起挑战的时候会生成一个房间号,两次分享的房间号有可能是不一样的;但我刚刚试了一下,哪怕不把快捷栏中的图标删掉,分享出去的参数也是会变的,我控制台打印了一下,没有问题。
      2019-10-21
      回复
    查看更多(3)
登录 后发表内容