分享

微信网页链接分享的API,及Weixin JS接口使用拾遗

 icecity1306 2014-11-18

微信是开放的吗,腾讯自己肯定说是。

可是一个分享网页链接的API都要搜半天也找不到一个官方说法,那算就“开放”吗。

关于分享网页链接,可以参见 分享网页链接到微信的“几种”方法

客户端API

如果不借助JavaScript的话:

  • 标题取自HTML代码中的title标签
  • 图片取自页面中得第一张“大”图
  • 页面内容简介为空

这显然可控性不是很好:

  • 空的页面内容简介不好看
  • 比如页面本身不包含图片,但分享时希望包含一个图片以增加美观
  • 比如希望页面的URL是某一个入口页面

目前综合查询总结下来,下面的代码经验证可以工作。使用的是被称为“Weixin JS接口”的东东。

var lineLink    = 'http://../....';    // 要分享的页面的URL
var imgUrl      = 'http://.../...';    // 显示在微信里的缩略图
var shareTitle  = '页面标题';          // 页面标题
var descContent = "页面内容简介";      // 内容简介
var appid       = '';                  // APP ID, 可以为空


function wx_shareFriend() {  
  WeixinJSBridge.invoke('sendAppMessage',{  
     "appid": appid,  
     "img_url": imgUrl,  
     "img_width": "640",  
     "img_height": "640",  
     "link": lineLink,  
     "desc": descContent,  
     "title": shareTitle  
     }, function(res) {  
       //alert(res.err_msg);  
     })  
}  

function wx_shareTimeline() {  
  WeixinJSBridge.invoke('shareTimeline',{  
    "img_url": imgUrl,  
    "img_width": "640",  
    "img_height": "640",  
    "link": lineLink,  
    "desc": descContent,  
    "title": shareTitle  
    }, function(res) {  
       //alert(res.err_msg);  
    });  
}  

function wx_shareWeibo() {  
  WeixinJSBridge.invoke('shareWeibo',{  
    "content": descContent,  
    "url": lineLink,  
    }, function(res) {  
      //alert(res.err_msg);  
    });  
}  

function onBridgeReady(){
  WeixinJSBridge.on('menu:share:appmessage', wx_shareFriend);   // 发送给朋友
  WeixinJSBridge.on('menu:share:timeline',   wx_shareTimeline); // 分享到朋友圈
  WeixinJSBridge.on('menu:share:weibo',      wx_shareWeibo);    // 分享到微博
}

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();
}

Weixin JS接口使用拾遗

“Weixin JS接口”没有完整的公开文档(至少自己还没有通过公开渠道找到),只能零散记录整理如下。

注册监听回调函数

function onBridgeReady(){
  WeixinJSBridge.on('menu:share:appmessage', wx_shareFriend);  
  WeixinJSBridge.on('menu:share:timeline',   wx_shareTimeline);  
  WeixinJSBridge.on('menu:share:weibo',      wx_shareWeibo);
}

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();
}

隐藏网页右上角按钮

WeixinJSBridge.call('hideOptionMenu');

隐藏网页底部导航栏

WeixinJSBridge.call('hideToolbar');

关闭当前网页窗口

WeixinJSBridge.invoke('closeWindow',{},function(res){
  // alert(res.err_msg);
});

获取当前网络链接类型

WeixinJSBridge.invoke('getNetworkType',{},function(e){
  // WeixinJSBridge.log(e.err_msg);
});
标签: 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多