用户场景
进入小程序后 =》 立即点击了分享按钮
需求说明
页面的分享信息未配置成功,如果用户再配置成功前点击了分享按钮,会导致分享信息不正确
右上角的分享还好解决, wx-hide一下,但是页面里的分享按钮就不好控制了
所以,有没有办法可以终止用户分享行为,例如在onShareAppMessage 里 return Promise.reject掉,这样就触发分享行为
不然,我们遇到很多情况多少,页面分享信息还没配置完,用户就点了分享按钮
用户根本不知道什么时候分享配置成功,用户一点分享按钮就弹出分享界面,根本不能提示用户
我现在也遇到了这个问题。当触发了onShareAppMessage后,我需要用promise去获取一个分享链接,但是一旦触发了onShareAppMessage就再也没有办法终止了。我找了全网也没有解决方案,尝试return false, void, null, undefined都不行。
虽然可以在页面中先request然后根据结果是否显示分享按钮,但会造成两种非常不好的用户体验:
1、每次加载页面,有没有必要都要先request一次,大大增加了服务器负担;
2、每次要分享的时候先要点击一个“获取分享链接”按钮,然后再点击“分享”,这实在用户体验太差了……
官方有没有什么说法?
解决:可以写两个按钮,一个正常按钮,一个分享按钮,显示的时候判断下
现在可以了 pramise 返回 reject就可以终止
方案:1:普通按钮 先拿到参数
2:通过弹窗dialog 取消 确认 在确认按钮上绑定type=share 拉起分享
场景:单独配置一个页面(作为 webview 使用),webview 打开的是一个 spa 单页,怎么在 onShareAppMessage(option) 中根据配置的页面 url ,来动态判断是否分享!
页面里面不是更好控制吗?隐藏或者禁用
可以看我上一条回复~
额外的提醒,分享按钮有别于表单提交按钮,分享按钮的(处理)操作必须是『不可见』的
如果是通过按钮触发的转发,可以在信息配置成功之前限制转发按钮不可点击或隐藏;也可以同时显示右上角的转发和显示。
是的 临时方法是这样 但是这个很不智能
一来,需要额外控制一个字段,这个字段还是影响视图的
二来,隐藏是不可能,不可点击是非常影响用户的行为。减少影响的办法就是给予用户一定的提示,例如按钮上文案,按钮的状态,或者最简单最不用配置的就是用户点击按钮的时候,直接提示用户正在配置
所以,最好的方案,肯定是在在onShareAppMessage中处理
分享的内容,可以在页面呈现时,获取。然后缓存