H5微信页面分享功能

微信公众号JS-SDK配置教程

步骤一:绑定域名
先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
备注:登录后可在“开发者中心”查看对应的接口权限。

步骤二:引入JS文件
在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.4.0.js
如需进一步提升服务稳定性,当上述资源不可访问时,可改访问:http://res2.wx.qq.com/open/js/jweixin-1.4.0.js (支持https)。
备注:支持使用 AMD/CMD 标准模块加载方法加载
步骤三:通过config接口注入权限验证配置
步骤四:通过ready接口处理成功验证
步骤五:通过error接口处理失败验证
代码:ps:link不写的话可能导致安卓二次分享失效,url一定要动态获取传参,目前api接口必须使用新老结合,单纯使用新api的话没有效果,只使用旧的在手机上分享失效

代码:

function share(){
  //定义分享字段内容
  var shareTitle='分享标题'
  var shareDesc='分享描述'
  var shareImgUrl=shareImg
  
  $.ajax({
      type: "POST",
      url: headUrl+"wechat/getJsConfig",
      contentType: "application/json",
      data: JSON.stringify(dataJson),
      dataType: "json",
      success: function (data) {
      if(data.code=='0000'){
              var appId =data.data.appId;
              var timestamp = data.data.timestamp;
              var nonceStr = data.data.nonceStr;
              var signature =data.data.signature; 
              var jsApiList =  ["updateAppMessageShareData", 'updateTimelineShareData', 'onMenuShareTimeline', 'onMenuShareAppMessage'];
              
              var testUrl=dataUrl+'?shareInfo='+sessionStorage.getItem('shareInfo')+'&channelCode='+sessionStorage.getItem('channelCode')
              //步骤二:通过config接口注入权限验证配置
              wx.config({
                  debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
                  appId: appId, // 必填,公众号的唯一标识,此处填写公众号corpid
                  timestamp:timestamp, // 必填,生成签名的时间戳
                  nonceStr: nonceStr, // 必填,生成签名的随机串
                  signature: signature,// 必填,签名,见附录1
                  jsApiList: jsApiList // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
              });

              //步骤三:通过ready接口处理成功验证
              wx.ready(function(){	
                  console.log("分享接口成功注入")
                  //自定义“分享给朋友”及“分享到QQ”按钮的分享内容
                wx.updateAppMessageShareData({ 
                        title: shareTitle, // 分享标题
                        desc: shareDesc, // 分享描述
                        link:testUrl,
                        imgUrl: shareImgUrl, // 分享图标
                        success: function () {
                            //设置成功
                            console.log("设置分享给朋友回调成功")
                        },
                        fail:function(res){
                            console.log("设置分享给朋友回调失败,接口调用次数:"+idNumber+",失败原因:"+JSON.stringify(res))
                        }
                    });
                    //自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容
                wx.updateTimelineShareData({ 
                    title: shareTitle, // 分享标题
                    desc: shareDesc, // 分享描述
                    link:testUrl,
                    imgUrl: shareImgUrl, // 分享图标
                    success: function () {
                        //设置成功
                            console.log("设置分享到朋友圈回调成功,")
                    },
                    fail:function(res){
                            console.log("设置分享给朋友圈回调失败,接口调用次数:"+idNumber+",失败原因:"+JSON.stringify(res))
                    }
                });
                wx.onMenuShareTimeline({ 
                    title: shareTitle, // 分享标题
                    desc: shareDesc, // 分享描述
                    link:testUrl,
                    imgUrl: shareImgUrl, // 分享图标
                    success: function () {
                        //分享成功后的回调
                            console.log("设置回调成功3")
                    }
                });
                wx.onMenuShareAppMessage({ 
                    title: shareTitle, // 分享标题
                    desc: shareDesc, // 分享描述
                    link:testUrl,
                    imgUrl: shareImgUrl, // 分享图标
                    success: function () {
                        //分享成功后的回调
                            console.log("设置回调成功4")
                    }
                });
          });
        //步骤四:通过error接口处理失败验证
        wx.error(function(data){
            var resStr = "签名信息验证失败:"+JSON.stringify(data);		
            console.log(resStr)			  
        });	
      }else{
          console.log("获取微信接口调用参数错误,请刷新或重新进入页面!");
      }
      }
  });
  
}

PS:微信公众号网页开发文档里面提到, ‘onMenuShareTimeline’, 'onMenuShareAppMessage’这两个api即将废弃,需使用最新的api也就是前面两个,但是在开发以及测试过程中,如果把后面两个去掉的话分享设置不管在什么环境都是失败的,所以只好把这两个加上了,一直不知道是什么原因,官方也没有提供反馈和提问的地方,如有大佬知道原因的话,还请告知,感激不尽。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值