移动端 禁止微信分享
1、创建mixin文件 文件内容如下
点击查看代码
// 隐藏微信分享
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 mixin from "@/mixin/mixin";
export default { mixins: [mixin], components: { pdf },
3、获取微信验签
具体可参考微信官方文档
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#1
mounted () { // 禁用分享 this.$nextTick(() => { this.verify() )} }
点击查看代码
verify(){
let that = this
setTimeout(() => {
// 需要根据需求配置
// 通过调用后端接口获取需要的信息
that.$axios.get('http://XXXXX',
{
headers:{
token:this.token
}
}).then(res => {
if (res.data.code == '0') {
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)