h5微信自定义分享

为了h5页面在微信分享效果更好,咱们接入了 h5 微信sdk,下面对接入流程总结。

一、在项目中引用微信的js-sdk

js-sdk地址(支持https):http://res.wx.qq.com/open/js/... 或者 http://res2.wx.qq.com/open/js... 后端

二、在微信公众平台绑定安全域名

三、配置config

在1,2步操做成功后,进入咱们写代码正题,咱们须要在入口js中配置configapi

wx.config({
    debug: true, // 开启调试模式,调用的全部api的返回值会在客户端alert出来,若要查看传入的参数,能够在pc端打开,参数信息会经过log打出,仅在pc端时才会打印。
    appId: '', 
    timestamp: , 
    nonceStr: '', 
    signature: '',
    jsApiList: [] 
});

参数说明:

  • appId:公众号的惟一标识,在公众号中能够取到;
  • timestamp:生成签名的时间戳
  • nonceStr: 生成签名的随机串
  • signature: 最后生成的签名
  • jsApiList: 须要使用的JS接口列表,咱们这里是用分享接口,将分享几个api接口填进去,例如:['updateAppMessageShareData', 'updateTimelineShareData', 'onMenuShareQQ']

(备注:出于安全考虑,微信要求开发者必须在服务器端实现签名的逻辑,故timestamp, nonceStr,signature 能够经过请求本身服务器返回。若是有兴趣了解是如何生成的,以下图1所示。)安全

图1
图1服务器

四、wx.ready中配置自定义分享信息

config 配置玩成功后,能够在wx.ready回调填写自定义的信息,以下:微信

wx.ready(function () {
      wx.onMenuShareQQ({ //分享QQ
        title: data.wxTitle, // 分享标题
        link: data.href, // 分享连接,该连接域名或路径必须与当前页面对应的公众号JS安全域名一致且分享的地址不要带端口
        desc: data.wxDesc,
        imgUrl: data.wxImg || defaultIcon, // 分享图标
        success: function () {
          // 用户确认分享后执行的回调函数
          // alert(e);
        },
        cancel: function () {
          // 用户取消分享后执行的回调函数
        }
      });

      wx.updateAppMessageShareData({ // 分享好友
        title: data.wxTitle, // 分享标题
        link: data.href, // 分享连接,该连接域名或路径必须与当前页面对应的公众号JS安全域名一致且分享的地址不要带端口
        desc: data.wxDesc,
        imgUrl: data.wxImg || defaultIcon, // 分享图标
        type: "", // 分享类型,music、video或link,不填默认为link
        dataUrl: "", // 若是type是music或video,则要提供数据连接,默认为空
        success: function (e) {
          // 用户点击了分享后执行的回调函数
          // alert(e);
        }
      });

      wx.onMenuShareTimeline({ // 分享朋友圈
        title: data.wxTitle, // 分享标题
        link: data.href, // 分享连接,该连接域名或路径必须与当前页面对应的公众号JS安全域名一致且分享的地址不要带端口
        desc: data.wxDesc,
        imgUrl: data.wxImg || defaultIcon, // 分享图标
        success: function (e) {
          // 用户点击了分享后执行的回调函数
          // alert(e)
        }
      });
    });

总结

到这一步分享的操做基本就完成了,建议在测试时将debug打开,看看分享提示,从而断定是否分享成功。若是不成功,能够参考一下在开发时候遇到的坑。app

  • 出现nvalid url domain提示
    1)检查当前页面所在域名与使用的appid没有绑定,请确认正确填写绑定的域名,仅支持80(http)和443(https)两个端口,所以不须要填写端口号。
  • 出现invalid signature签名错误提示
    1)检查生成signature是否正确,能够经过签名校验工具来断定后端传过来的nonceStr、timestamp与请求后端接口传的地址,与最后签名是否一致。
    2) config时,nonceStr 记得驼峰写法哦。
    3) 签名用的url必须是调用JS接口页面的完整URL,即当前页面的完整URL。
  • 提示是成功的,可是分享出来图标不见或者desc不显示的状况
    1) 分享的地址不要带端口号哦,咱们以前带了3000端口,形成出现了这种状况。
    2)分享desc 不要带有敏感词汇,咱们带礼包之类的词汇,居然被也出现这种状况...

以上是对本次微信分享的总结,若是须要更详细的了解内容,能够从微信官网文档更深刻的了解。微信公众平台

参考资料:微信官网文档点击查看dom

相关文章
相关标签/搜索