微信的WeixinJSBridge還是很厲害的,雖然官方文檔只公布了3個功能,但是還內置的很多功能沒公布,但是存在。今天就好好和大家聊聊
功能1------發送給好友
代碼如下:
function sendMessage(){ WeixinJSBridge.on('menu:share:appmessage', function(argv){ alert("發送給好友"); }); }
這樣,只要在某處調用 sendMessage 函數就可以改變發送好友的按鈕響應了,再點擊,便會彈出“發送給好友字符串”
功能2-----分享
WeixinJSBridge.invoke('sendAppMessage',{ "appid":"", //appid 設置空就好了。 "img_url": imgUrl, //分享時所帶的圖片路徑 "img_width": "120", //圖片寬度 "img_height": "120", //圖片高度 "link":url, //分享附帶鏈接地址 "desc":"我是一個介紹", //分享內容介紹 "title":"標題,再簡單不過了。" }, function(res){/*** 回調函數,最好設置為空 ***/});
注意,如果將這個微信私有函數單獨拿出來調用,道理上是講的通,但是!第一次打開頁面直接調用它的話,無論如何是沒有任何反映的,必須要手動,點一下右上角分享給好友按鈕,待彈出一次通訊錄之后,返回來在直接使用,就沒有任何問題,似乎內部初始化什么東西一樣。所以建議直接嵌入到上面那個 綁定方法中。
如下:
function sendMessage(){ WeixinJSBridge.on('menu:share:appmessage', function(argv){ WeixinJSBridge.invoke('sendAppMessage',{ "appid":"", //appid 設置空就好了。 "img_url": imgUrl, //分享時所帶的圖片路徑 "img_width": "120", //圖片寬度 "img_height": "120", //圖片高度 "link":url, //分享附帶鏈接地址 "desc":"我是一個介紹", //分享內容介紹 "title":"標題,再簡單不過了。" }, function(res){/*** 回調函數,最好設置為空 ***/ }); }); }
這樣,你在點擊發送給好友按鈕,就可以直接彈出通訊錄選擇 ‘單個' 好友進行分享。
同理,分享到朋友圈也是調用 invoke 私有函數,只是按鈕綁定名稱不同而已。
代碼如下:
function sendMessage(){ ......//此處省略發送給好友代碼 WeixinJSBridge.on('menu:share:timeline', function(argv){ WeixinJSBridge.invoke('shareTimeline',{ "appid":"", //appid 設置空就好了。 "img_url": imgUrl, //分享時所帶的圖片路徑 "img_width": "120", //圖片寬度 "img_height": "120", //圖片高度 "link":url, //分享附帶鏈接地址 "desc":"我是一個介紹", //分享內容介紹 "title":"標題,再簡單不過了。" }, function(res){/*** 回調函數,最好設置為空 ***/}); }); }); }
注意,on綁定的是 “menu:share:timeline” 不是 "menu:share:appmessage"。invoke里面也是。
還一個微博分享,我沒試過,不知道有沒有用,想玩的試試,一切分享都是調用當前微信帳號分享。
代碼如下:
WeixinJSBridge.on('menu:share:weibo', function(argv){ WeixinJSBridge.invoke('shareWeibo',{ "content":dataForWeixin.title+' '+dataForWeixin.url, "url":dataForWeixin.url }, function(res){}); });
如果微信瀏覽器內部尚未初始化,所有的接口都會是undefined。為了避免進去馬上就調用出錯,獲取微信初始化完成響應事件,初始化完成調用sendMessage進行綁定。
功能3---------隱藏-關閉瀏覽器
WeixinJSBridge.call('hideToolbar'); //隱藏右下面工具欄 WeixinJSBridge.call('showToolbar'); //顯示右下面工具欄 WeixinJSBridge.call('hideOptionMenu'); //隱藏右上角三個點按鈕。 WeixinJSBridge.call('showOptionMenu'); //顯示右上角三個點按鈕。 WeixinJSBridge.call('closeWindow');//關閉當前窗口