微信开发之禁止分享
既然是微信的分享功能,当然要用微信接口,微信接口在调用时有两种方式,但是前提是页面要引入微信的js-JDK
- 方法一:通过配置
wx.config()
,config:ok
后,会执行wx.ready(function(){})
,把我们需要用到的接口,在ready()
中调用即可。
//config的配置信息,需要后台给你
wx.config({
debug: false,
appId: res.appid,// 必填,公众号的唯一标识
timestamp: res.timestamp,// 必填,生成签名的时间戳
nonceStr: res.nonceStr,// 必填,生成签名的随机串
signature: res.signature,// 必填,签名
jsApiList: [//所有要调用的 API 都要加到这个列表中 必填,需要使用的JS接口列表
'getLocation',
'hideOptionMenu',
'hideAllNonBaseMenuItem'
]
});
//配置成功以后config:ok
wx.ready(function () {
wx.checkJsApi({
jsApiList: [ 'hideAllNonBaseMenuItem','getLocation','hideOptionMenu'],
success: function (res) {
if (res.checkResult.getLocation == false){
alert('你的微信版本太低,不支持微信JS接口,请升级到最新的微信版本!');
return;
}
}
});
//隐藏右上角菜单接口
wx.hideOptionMenu();
// 隐藏所有基础类
wx.hideAllNonBaseMenuItem();
wx.error(function(res){
alert("接口调取失败")
});
})
效果如下:
2. 方法二 通过事件触发 直接执行wx.接口名
window.onload=function(){
wx.hideOptionMenu()
}
//如果通过第一种方式,前端需要先向后台发送请求,并拿到数据,才会执行到你要调用的微信接口AIP,
//这种方法不需要等待向后端发送请求获取数据再配置的事件和麻烦
//效果同上
开发过程中遇到的问题,如果你有更好的方法,还请留言指教哦~~~
发现IOS系统无效,更改方法如下:
// 禁止分享,微信开发者工具不支持以下方法,本地测试的时候,需要先注释
document.addEventListener('WeixinJSBridgeReady', function () {
parent.WeixinJSBridge.call('hideOptionMenu')
}, false)
parent.WeixinJSBridge.call('hideOptionMenu')
//别人家的方法
//function onBridgeReady(){
// WeixinJSBridge.call('hideOptionMenu')
//}
// parent.WeixinJSBridge.call('hideOptionMenu')
//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();
// }
3 方法三
上述方法二只能在内部不使用
wx.config()
时使用,否则,只要配置config,方法二,就会失效,其实方法三的原理就是监听$route
,如果$route
有变化,就执行方法一。
watch: {
$route (to,from){
this.getconfig()
}
},