微信開發之禁止分享
既然是微信的分享功能,當然要用微信接口,微信接口在調用時有兩種方式,但是前提是頁面要引入微信的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()
}
},