收藏
回答

有没有办法终止onShareAppMessage或用户分享方法

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 需求 分享 客户端

用户场景

进入小程序后 =》 立即点击了分享按钮


需求说明

页面的分享信息未配置成功,如果用户再配置成功前点击了分享按钮,会导致分享信息不正确



右上角的分享还好解决, wx-hide一下,但是页面里的分享按钮就不好控制了


所以,有没有办法可以终止用户分享行为,例如在onShareAppMessage  里 return Promise.reject掉,这样就触发分享行为


不然,我们遇到很多情况多少,页面分享信息还没配置完,用户就点了分享按钮

用户根本不知道什么时候分享配置成功,用户一点分享按钮就弹出分享界面,根本不能提示用户



最后一次编辑于  05-31
回答关注问题邀请回答
收藏

3 个回答

  • 蒋成龙
    蒋成龙
    07-15

    我现在也遇到了这个问题。当触发了onShareAppMessage后,我需要用promise去获取一个分享链接,但是一旦触发了onShareAppMessage就再也没有办法终止了。我找了全网也没有解决方案,尝试return false, void, null, undefined都不行。


    虽然可以在页面中先request然后根据结果是否显示分享按钮,但会造成两种非常不好的用户体验:

    1、每次加载页面,有没有必要都要先request一次,大大增加了服务器负担;

    2、每次要分享的时候先要点击一个“获取分享链接”按钮,然后再点击“分享”,这实在用户体验太差了……


    官方有没有什么说法?

    07-15
    赞同 2
    回复 1
    • 胡夏mei
      胡夏mei
      08-30
      手动@官方呢
      08-30
      回复
  • 醉月思
    醉月思
    05-31

    页面里面不是更好控制吗?隐藏或者禁用

    05-31
    赞同
    回复 1
    • 陈式坚
      陈式坚
      05-31

      可以看我上一条回复~


      额外的提醒,分享按钮有别于表单提交按钮,分享按钮的(处理)操作必须是『不可见』的

      05-31
      1
      回复
  • 青青子衿
    青青子衿
    05-31

    如果是通过按钮触发的转发,可以在信息配置成功之前限制转发按钮不可点击或隐藏;也可以同时显示右上角的转发和显示。

    05-31
    赞同
    回复 2
    • 陈式坚
      陈式坚
      05-31

      是的 临时方法是这样 但是这个很不智能

      一来,需要额外控制一个字段,这个字段还是影响视图的

      二来,隐藏是不可能,不可点击是非常影响用户的行为。减少影响的办法就是给予用户一定的提示,例如按钮上文案,按钮的状态,或者最简单最不用配置的就是用户点击按钮的时候,直接提示用户正在配置


      所以,最好的方案,肯定是在在onShareAppMessage中处理


      05-31
      1
      回复
    • 老马
      老马
      06-06

      分享的内容,可以在页面呈现时,获取。然后缓存

      06-06
      回复