uni-app对接微信公众号自定义分享功能

525 阅读1分钟

后台处理部分

1、调用 api.weixin.qq.com/cgi-bin/tok… , 得到 access_token

2、调用 api.weixin.qq.com/cgi-bin/tic… ,得到 api_ticket

3、拿到api_ticke,就可以进行签名,生成signature

获取Access token官方文档

1、安装jweixin-module

npm i jweixin-module

2、分享方法

mounted(){
this.share1();
}
//获取配置信息
share1() {
      let self = this;
      let jweixin = require("jweixin-module");
      //**通过 config 接口注入权限验证配置**  
      //涉及到了签名算法,这块给了后台处理,通过接口获取配置信息
      this.$http({
        url: "https://...",
        method: "POST",
        data: {
          url: window.location.href.split("#")[0],
          //后台通过域名进行授权
        },
      }).then((res) => {
        jweixin.config({
          debug: false,
          appId: this.appid,
          // 必填,公众号的唯一标识
          timestamp: res.timestamp,
          // 必填,生成签名的时间戳
          nonceStr: res.nonce_str,
          // 必填,生成签名的随机串
          signature: res.signature,
          // 必填,签名
          jsApiList: ["updateAppMessageShareData", "updateTimelineShareData"], // 必填,需要使用的JS接口列表
        });
        self.share2();
      });
    },
//自定义分享
    share2() {
      let number = Math.floor(Math.random() * (2 - 0)) + 0;
      let objShare = [
        {
          title: "标题",
          desc: "描述",
          imgUrl:"https://xxx.jpg",
        },
       {
          title: "标题",
          desc: "描述",
          imgUrl:"https://xxx.jpg",
        },
      ];
      let jweixin = require("jweixin-module");
      jweixin.ready(function (res) {
        let obj = {
          title: objShare[number].title,
          desc: objShare[number].desc,
          imgUrl: objShare[number].imgUrl,
          link:
            `https://xxx/unpackage/dist/build/h5/index.html`,
          trigger: function trigger(res) {},
          success: function success(res) {},
          cancel: function cancel(res) {},
          fail: function fail(res) {},
        };
        jweixin.updateAppMessageShareData({ ...obj }); //分享给朋友
        jweixin.updateTimelineShareData({ ...obj }); //分享到朋友圈
      });
    },

3、测试号申请

接口测试号申请

image.png