微信jssdk ios下自定义onMenuShareAppMessage 分享失效,Android分享成功

孙小美
  • 18

在Android下分享调用onMenuShareAppMessage 方法成功的走了自定义的链接,但是同一段代码在ios下就还是本页的链接,debug模式开启,全都是ok,ios也是ok,不知道问题出在哪了,也是在wx.ready里调用的,还特意setTimeout了两秒钟也不行,各种都努力了。

setTimeout(function() {
                    alert('已注册获取“发送给朋友”状态事件');
                    // 分享到朋友圈
                    wx.onMenuShareAppMessage({
                        title: '个人资料', // 分享标题
                        desc: '他(她)的病症信息。', // 分享描述
                        link: '<%=basePath%>/weChat/more/sharePage?'+queryString, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                        imgUrl: '<%=basePath%>/images/weChat/ic_share.png', // 分享图标
                        type: 'link',
                        trigger: function (res) {
                            alert('用户点击发送给朋友');
                        },
                        success: function (res) {
                           alert('已分享');
                        },
                        cancel: function (res) {
                           alert('已取消');
                        },
                        fail: function (res) {
                           alert(JSON.stringify(res));
                        }
                    });
                 }, 2000);
回复
阅读 15.5k
7 个回答

终于解决了,我把link里和imgUrl里的变量<%=basePath%>换成了固定的路径,好用了

在你的jsApiList中加上新的updateAppMessageShareData, 原来老的onMenuShareAppMessageAPI保留,并且加上

 // 分享给朋友
 wx.updateAppMessageShareData({
   title,
   desc,
   link,
   imgUrl,
   type: 
   ...
 })

我这样加上就好使了, 大家可以试试。

适应不同环境,如下写法最佳

link: location.protocol+"//"+location.host+'/share/wechat/resumeDetail/'+encryptStr, // 分享链接

保证 protocol不要丢失

首先,指定的分享链接的域名需要在微信管理后台设置为JS 安全域名(相当于认证一下这个域名是你所有)。

另外,看到微信官方2017年发文强调过一个规则:

自2017年4月25日起,JSSDK“分享到朋友圈”及“发送给朋友”接口,自定义的分享链接,其域名或路径必须与当前页面对应的公众号JS安全域名一致,否则将调用失败。

转自:https://mp.weixin.qq.com/s/hA...

不过我目前(2018.12)测试来看,Android 下并没有体现出这个限制。

cj_madlife
  • 2
新手上路,请多包涵

iOS下采用新api,updateAppMessageShareDataupdateTimelineShareData
安卓下还是用onMenuShareTimelineonMenuShareAppMessage
iOS下每个页面的分享无法使用我们指定的link,只能分享当页的link,所以还要额外用路由守卫来重定向到首页

宣传栏