H5微信分享

//wx-share
function getWxConfig(){
  var returnUrl = window.location.href;
  returnUrl = encodeURIComponent(returnUrl);//很重要,必须编码
  var APPID = "test_web";
  $.ajax({
    type: 'GET',
    dataType: "json",
    url: ajaxUrl + "/v1/wx/share/sign?appId="+APPID+"&shareUrl="+returnUrl,
    contentType: "application/json",
    success: function(res) {
      if(res.code == '20000') {
        setWxConfig(res.result);
      }
    },
    error: function(err) {
      console.warn(err);
    }
  })
}

function setWxConfig(data) {

  wx.config({

    debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。

    appId: data.appId, // 必填,公众号的唯一标识

    timestamp:data.timestamp, // 必填,生成签名的时间戳

    nonceStr: data.nonceStr, // 必填,生成签名的随机串

    signature: data.signature,// 必填,签名,见附录1

    jsApiList: ['onMenuShareTimeline' ,'onMenuShareAppMessage','onMenuShareQQ'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2

  });

  wx.checkJsApi({

    jsApiList: ['onMenuShareTimeline' ,'onMenuShareAppMessage','onMenuShareQQ'], // 需要检测的JS接口列表,所有JS接口列表见附录2,

    success: function(res) {

      wxshare(g_shareMessage)

      // 以键值对的形式返回,可用的api值true,不可用为false

      // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
    }
  });
}



function wxshare(shareMessage) {

  wx.ready(function(){

    // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。

    var shareUrl = window.location.href;
    wx.onMenuShareTimeline({//分享到朋友圈

      title: shareMessage.circleTitle, // 分享标题

      link: shareUrl, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致

      imgUrl: shareMessage.circleImgUrl, // 分享图标

      success: function () {

        alertToast('分享成功');// 用户确认分享后执行的回调函数

      },

      cancel: function () {

        alertToast('分享失败');// 用户取消分享后执行的回调函数

      }

    });

    wx.onMenuShareAppMessage({ //分享给朋友

      title: shareMessage.wechatTitle, // 分享标题

      desc: shareMessage.wechatDescription, // 分享描述

      link: shareUrl, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致

      imgUrl: shareMessage.wechatImgUrl, // 分享图标

      type: '', // 分享类型,music、video或link,不填默认为link

      dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空

      success: function () {

        alertToast('分享成功');// 用户确认分享后执行的回调函数

      },

      cancel: function () {

        alertToast('分享失败');// 用户取消分享后执行的回调函数
      }

    });

    wx.onMenuShareQQ({//分享到QQ

      title: shareMessage.qqTitle, // 分享标题

      desc: shareMessage.qqDescription, // 分享描述

      link: shareUrl, // 分享链接

      imgUrl: shareMessage.qqImgUrl, // 分享图标

      success: function () {

        alertToast('分享成功');// 用户确认分享后执行的回调函数

      },
      cancel: function () {

        alertToast('分享失败');// 用户取消分享后执行的回调函数

      }
    });

    wx.onMenuShareWeibo({ //分享到腾讯微博

      title: shareMessage.weiboTitle, // 分享标题

      desc: shareMessage.weiboDescription, // 分享描述

      link: shareUrl, // 分享链接

      imgUrl: shareMessage.weiboImgUrl, // 分享图标

      success: function () {

        alertToast('分享成功');// 用户确认分享后执行的回调函数

      },

      cancel: function () {

        alertToast('分享失败');// 用户取消分享后执行的回调函数

      }

    });

    wx.onMenuShareQZone({ //分享到QQ空间

      title: shareMessage.qzoneTitle, // 分享标题

      desc: shareMessage.qzoneDescription, // 分享描述

      link: shareUrl, // 分享链接

      imgUrl: shareMessage.qzoneImgUrl, // 分享图标

      success: function () {

        alertToast('分享成功');// 用户确认分享后执行的回调函数

      },

      cancel: function () {

        alertToast('分享失败');// 用户取消分享后执行的回调函数

      }

    });

  });
}


你可能感兴趣的:(H5微信分享)