h5 禁止微信分享

1、创建 mixin.js文件
src\mixin\mixin.js

点击查看代码
// 隐藏微信分享
function onBridgeReady() {
  // eslint-disable-next-line
  WeixinJSBridge.call("hideOptionMenu");
}
const mixin = {
  data: function() {
    return {

    };
  },
  computed: {

  },
  methods: {
  },
  beforeCreate() {
    // eslint-disable-next-line
    if (typeof WeixinJSBridge === "undefined") {
      if (document.addEventListener) {
        document.addEventListener("WeixinJSBridgeReady", onBridgeReady, false);
      } else if (document.attachEvent) {
        document.attachEvent("WeixinJSBridgeReady", onBridgeReady);
        document.attachEvent("onWeixinJSBridgeReady", onBridgeReady);
      }
    } else {
      onBridgeReady();
    }

  },

};
export default mixin;

2、需要禁用分享的页面中引入

import wx from "weixin-js-sdk";

import mixin from "@/mixin/mixin";

3、页面获取微信验签-调用后端接口

点击查看代码

    verify(){
        let that = this
        setTimeout(() => {
          // 需要根据需求配置
        that.$axios.get(Url+'api/v1/wechat/signature?url=http://trainint.gwlife.cn/train/mobile/index.html',
        {
          headers:{
            token:this.token
          }
        }).then(res => {
          if (res.data.code == '0') {
            console.log("微信res",res,wx)
            wx.config({
              debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
              appId: res.data.data.appId, // 必填,公众号的唯一标识
              timestamp: res.data.data.timestamp, // 必填,生成签名的时间戳
              nonceStr: res.data.data.nonceStr, // 必填,生成签名的随机串
              signature: res.data.data.signature, // 必填,签名,见附录1
              jsApiList: [
                "hideAllNonBaseMenuItem",
                "showMenuItems",
                // "onMenuShareAppMessage",
                // "onMenuShareTimeline",
                // "checkJsApi",
                // "wx-open-launch-weapp",
                'hideMenuItems'
              ], // 必填,需要使用的JS接口列表
              // openTagList: ["wx-open-launch-weapp"], //用于跳转到小程序
            });


            wx.ready(function(row){
                console.log('执行成功',row)
            });

            wx.error(function(err){
                console.log('错误',err)
              // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名
            });
          }
        })
        .catch(error =>
          //请求失败,触发catch中的函数 可省略
          console.log(error)
        )
    },1000)
    },
  mounted () {
	  this.$nextTick(() => {
      	this.verify()
	  })
	}

posted @ 2023-03-03 10:04  你的眼里有星星  阅读(871)  评论(0编辑  收藏  举报