微信分享IOS环境加了link有变量就失效问题——完美解决

首先排除一下是不是签名获取错误。前端把当前页面url传给后端获取签名等信息的时候。

url参数要编码处理一下(必须是get请求),确保获取的签名错误(这里特别是ios系统。不处理就不行) 

如下代码微信分享在安卓环境中可以实现分享设置,但是在IOS环境中就无法实现分享设置

wx.onMenuShareTimeline({
            title: storeName+storePhone+'发起了拼单:'+vm.tradeName, // 分享标题
            link: '<%=basePath%>/wechat/shareServer/collageDetail/'+vm.shareOrdId+'/'+storeId+'/'+userId, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
            imgUrl: '<%=imgBasePath%>'+vm.journeyUrl, // 分享图标
            success: function () {
                // 设置成功
                // alert("设置成功");
            }
        }, function(res) {
            //这里是回调函数
            alert("分享成功");
        })

经过七八个小时的百度、分析、测试,终于发现了问题的所在:

  1.link不能设置中文(百度一大堆都是这个说法)

  2.link必须在安全域名下

  3.最重要的一点,也是我遇到的问题所在:就是上面的<%=basePath%>是通过jsp如下获取的,但是不知道什么原因就是在ios中无法设置分享

 

解决方法用:location.protocol+'//'+location.host+'/'   来获取http://*********,代码如下:

wx.onMenuShareTimeline({
            title: storeName+storePhone+'发起了拼单:'+vm.tradeName, // 分享标题
            link: location.protocol+'//'+location.host+'/'+'tour/wechat/shareServer/collageDetail/'+vm.shareOrdId+'/'+storeId+'/'+userId, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
            imgUrl: '<%=imgBasePath%>'+vm.journeyUrl, // 分享图标
            success: function () {
                // 设置成功
                // alert("设置成功");
            }
        }, function(res) {
            //这里是回调函数
            alert("分享成功");
        })

 

你可能感兴趣的:(微信,javaScript)