微信app的分享功能

  最近在做微信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就必须保证绑定事件是同步的,即同步执行。

posted @ 2014-09-01 10:18  秋尘  阅读(2919)  评论(2编辑  收藏  举报