收藏
回答

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

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

用户场景

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


需求说明

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



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


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


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

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



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

7 个回答

  • 蒋成龙
    蒋成龙
    2019-07-15

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


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

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

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


    官方有没有什么说法?

    2019-07-15
    有用 3
    回复 1
    • 胡夏mei
      胡夏mei
      2019-08-30
      手动@官方呢
      2019-08-30
      回复
  • ANSWER
    ANSWER
    2020-08-04

    解决:可以写两个按钮,一个正常按钮,一个分享按钮,显示的时候判断下

    2020-08-04
    有用 1
    回复
  • 中
    2022-05-06

    现在可以了 pramise 返回 reject就可以终止

    2022-05-06
    有用
    回复 2
    • 楠栅
      楠栅
      2023-06-23
      返回有时会报错  Uncaught (in promise)
      2023-06-23
      回复
    • 中
      2023-09-14回复楠栅
      这个是pramise没写catch造成的吧
      2023-09-14
      回复
  • ネф イω
    ネф イω
    2021-02-21

    方案:1:普通按钮 先拿到参数

    2:通过弹窗dialog 取消 确认 在确认按钮上绑定type=share 拉起分享


    2021-02-21
    有用
    回复 1
    • 噗哈哈哈~
      噗哈哈哈~
      2022-06-10
      这个方法怎么写呢?不太明白
      2022-06-10
      回复
  • 松林
    松林
    2020-10-20

    场景:单独配置一个页面(作为 webview 使用),webview 打开的是一个 spa 单页,怎么在 onShareAppMessage(option) 中根据配置的页面 url ,来动态判断是否分享!

    2020-10-20
    有用
    回复 1
    • 周燕
      周燕
      2021-09-13
      这个问题有解决吗,目前遇到了同样的问题
      2021-09-13
      回复
  • 小醉月思
    小醉月思
    2019-05-31

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

    2019-05-31
    有用
    回复 1
    • 陈式坚
      陈式坚
      2019-05-31

      可以看我上一条回复~


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

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

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

    2019-05-31
    有用
    回复 2
    • 陈式坚
      陈式坚
      2019-05-31

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

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

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


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


      2019-05-31
      1
      回复
    • 老马水手
      老马水手
      2019-06-06

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

      2019-06-06
      回复
登录 后发表内容