微信分享

npm install weixin-js-sdk   微信分享

描述:H5页面在微信环境点击右上角的三个点分享朋友圈、好友卡片功能

import wx from "weixin-js-sdk";

param: {

        jsapi_ticket: "",

        noncestr: "hjt-activity818",

        url: "", 签名的url地址

      },

this.param.url去的时候当前url的#前的部分,如果是history模式则取全部url地址进行签名

      wxConfig: {

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

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

        timestamp: "", // 必填,生成签名的时间戳、是秒不是毫秒

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

        signature: "", // 必填,签名

        jsApiList: [],

      },

第一步:接口获取getTicket;

第二步:获取签名signature

成功获取签名后的wx.config赋值

例:res.then((res) => {

        let wxShare = JSON.parse(JSON.stringify(res)).data;

        if (wxShare.code == "00000" && wxShare.data != null) {

          this.wxConfig.timestamp = wxShare.data.timestamp;

          this.wxConfig.signature = wxShare.data.sign;

          this.wxConfig.nonceStr = this.param.noncestr;

          wx.config({

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

            appId: that.wxConfig.appId, //congig.appId, // 必填,公众号的唯一标识,填自己的!

            timestamp: that.wxConfig.timestamp, // 必填,生成签名的时间戳,刚才接口拿到的数据

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

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

            jsApiList: ["updateAppMessageShareData", "updateTimelineShareData"],

          });

        }

        // 获取分享权限

        setTimeout(() => {

          wx.updateAppMessageShareData({

            title: that.articleData.title,

            desc: that.articleData.summary,

            link: this.signUrl, //`https://fat-promo.pyamc.com/cms-app-html/articlesShare?articleId=${that.articleId}&channel=201211&channelCode=P0700100`,

            imgUrl: "https://m.pyamc.com/trade/img/[email protected]",

            success: function () {

              console.log("分享成功");

            },

            fail: function () {

              console.log("分享失败");

            },

            cancel: function () {

              console.log("取消分享");

            },

          });

         // 获取分享权限

          wx.updateTimelineShareData({

            title: that.articleData.title,

            link: this.signUrl,//`https://fat-promo.pyamc.com/cms-app-html/articlesShare?articleId=${that.articleId}&channel=201211&channelCode=P0700100`,

            imgUrl: "https://m.pyamc.com/trade/img/[email protected]",

            success: function () {

              console.log("分享成功");

            },

            fail: function () {

              console.log("分享失败");

            },

            cancel: function () {

              console.log("取消分享");

            },

          });

        }, 300);

      });



重点:1、签名的地址是当前地址的#号前部分可以用window.location.href.split("#")[0]获取,如果是history模式取全地址

            2、签名用的时间戳是秒不是毫秒;

            3、获取权限加定时器是防止ios分享会出错;

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