之前寫了一篇關於這個WeixinJSBridge API的文章,文章地址 ,於是有很多網友都在過來咨詢這個API的使用,在這里有必要跟大家再說一下:這個API在以前公布的部分接口被官方和諧掉很久了, 比如一鍵關注、分享給好友、分享到朋友圈等。當然,你可能會發現微信官方推送的一些文章還能使用這些功能,粗略估計,官方是對這個API增加了白名單控制,判斷Referer,如果是微信官方的地址、或者是有合作的商家地址,則允許調用,否則,返回“access denied”!
截止目前,筆者還沒用發現還有什么辦法能繼續使用它!不過,官方和諧掉這個API其實也是說得過去的,因為在整個WebView的右上角,官方做了一個Navtive的按鈕,點開以后,包括分享給好友、分享到朋友圈這樣的功能都有,所以,官方也是在做一些引導。
當然,WeixinJSBridge這個API也並不是所有功能都被和諧掉了,相反,有好幾個功能還是相當有用的,可以正常使用,比如:
1、隱藏微信網頁右上角的按鈕(...按鈕):開發者可以用這個功能來禁止當前頁面被分享
2、隱藏微信網頁底部的導航欄(比如前進后退和刷新):這個導航欄會占用一定的區域,開發者可以認為用戶不會用到它,將其隱藏掉
3、在微信網頁中獲取用戶的網絡狀態:開發者可以利用這個API獲得用戶的網絡狀態,並提供不同的服務,比如視頻類,在wifi下提供高清視頻流,在2g網絡下提供普通清晰視頻流等等
下面分別通過簡單的幾行代碼,說明這幾個API的用法:
1、隱藏微信網頁右上角的按鈕
1 document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() { 2 // 通過下面這個API隱藏右上角按鈕 3 WeixinJSBridge.call('hideOptionMenu'); 4 }); 5 6 document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() { 7 // 通過下面這個API顯示右上角按鈕 8 WeixinJSBridge.call('showOptionMenu'); 9 });
2、隱藏微信網頁底部的導航欄
1 document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() { 2 // 通過下面這個API隱藏底部導航欄 3 WeixinJSBridge.call('hideToolbar'); 4 }); 5 6 document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() { 7 // 通過下面這個API顯示底部導航欄 8 WeixinJSBridge.call('showToolbar'); 9 });
3、在微信網頁中獲取用戶的網絡狀態
1 WeixinJSBridge.invoke('getNetworkType',{},function(e){ 2 // 在這里拿到e.err_msg,這里面就包含了所有的網絡類型 3 alert(e.err_msg); 4 });
e.err_msg的取值如下所示:
1 network_type:wifi wifi網絡 2 network_type:edge 非wifi,包含3G/2G 3 network_type:fail 網絡斷開連接 4 network_type:wwan 2g或者3g
使用實例
可以戳這個鏈接測試一下:http://www.baidufe.com/demo/wxjsapi2.html