最近在作微信app,須要用到分享功能,橫觀文檔,壓根沒有提過度享功能自定義的事情……後來在搜索中找到一些前輩的文章,使用WeixinJSBridge這個接口實現,可是,我很是很是好奇,這是什麼渠道透露出來的 ||_||瀏覽器
var options = { "appid": '', //能夠不設置 但必須存在這屬性 "img_url": '', //分享圖片的路徑 "img_width": "200", "img_height": "200", "link": '', //分享的連接 "desc": '', //分享的描述文字 (分享到朋友圈沒有描述) "title": '' //分享的標題 }; function shareFriend() {
//分享給朋友 WeixinJSBridge.invoke('sendAppMessage',options, function(res) { //_report('send_msg', res.err_msg); }) } function shareTimeline() {
//分享到朋友圈 WeixinJSBridge.invoke('shareTimeline',options, function(res) { //_report('timeline', res.err_msg); }); } function shareWeibo() {
//分享到騰訊微薄 WeixinJSBridge.invoke('shareWeibo',{ "content": options.descContent, "url": options.lineLink, }, function(res) { //_report('weibo', res.err_msg); }); } // 當微信內置瀏覽器完成內部初始化後會觸發WeixinJSBridgeReady事件。 document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() { // 發送給好友 WeixinJSBridge.on('menu:share:appmessage', function(argv){ shareFriend(); }); // 分享到朋友圈 WeixinJSBridge.on('menu:share:timeline', function(argv){ //shareTimeline();return false; //返回false只是本人代碼習慣,沒有return也能夠,只要不設置執行的方法,就不會觸發分享。 }); // 分享到微博 WeixinJSBridge.on('menu:share:weibo', function(argv){ //shareWeibo();return false; }); }, false);
在實際開發中,使用的是seajs的模塊化管理,若是在模塊裏面執行WeixinJSBridge的事件綁定,這是有問題的。通過屢次試驗,WeixinJSBridge是會在seajs引入模塊以前加載完畢,也就是綁定WeixinJSBridgeReady事件的時候,WeixinJSBridge已經加載完畢,過了ready的時間,就不會觸發WeixinJSBridgeReady的事件。也就是要使用WeixinJSBridge就必須保證綁定事件是同步的,即同步執行。微信