html5中文学习网

您的位置: 首页 > 网站及特效实例 > javascript特效 » 正文

微信内置浏览器私有接口WeixinJSBridge介绍_javascript技巧_

[ ] 已经帮助:人解决问题

ZCyHTML5中文学习网 - HTML5先行者学习网

微信网页进入,右上角有三个小点,没错,我们用到的就是它!我们只要通过将小点列表下的按钮进行自定义,就可以随心所欲的分享我们自己的内容了。ZCyHTML5中文学习网 - HTML5先行者学习网

注意:(WeixinJSBridge只能在微信内打开的网页有效)ZCyHTML5中文学习网 - HTML5先行者学习网

按钮一之------发送给好友ZCyHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
ZCyHTML5中文学习网 - HTML5先行者学习网
function sendMessage(){ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
 WeixinJSBridge.on('menu:share:appmessage', function(argv){ alert("发送给好友"); });ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
}ZCyHTML5中文学习网 - HTML5先行者学习网
ZCyHTML5中文学习网 - HTML5先行者学习网

这样,只要在某处调用 sendMessage  函数就可以改变发送好友的按钮响应了,再点击,便会弹出“发送给好友字符串”,是不是很简单。ZCyHTML5中文学习网 - HTML5先行者学习网

分享函数ZCyHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
ZCyHTML5中文学习网 - HTML5先行者学习网
WeixinJSBridge.invoke('sendAppMessage',{ZCyHTML5中文学习网 - HTML5先行者学习网
    "appid":"",                                              //appid 设置空就好了。ZCyHTML5中文学习网 - HTML5先行者学习网
    "img_url":  imgUrl,                                   //分享时所带的图片路径ZCyHTML5中文学习网 - HTML5先行者学习网
    "img_width": "120",                            //图片宽度ZCyHTML5中文学习网 - HTML5先行者学习网
    "img_height": "120",                            //图片高度ZCyHTML5中文学习网 - HTML5先行者学习网
    "link":url,                                               //分享附带链接地址ZCyHTML5中文学习网 - HTML5先行者学习网
    "desc":"我是一个介绍",                            //分享内容介绍ZCyHTML5中文学习网 - HTML5先行者学习网
    "title":"标题,再简单不过了。"ZCyHTML5中文学习网 - HTML5先行者学习网
   }, function(res){/*** 回调函数,最好设置为空 ***/});ZCyHTML5中文学习网 - HTML5先行者学习网
ZCyHTML5中文学习网 - HTML5先行者学习网

注意,如果将这个微信私有函数单独拿出来调用,道理上是讲的通,但是!第一次打开页面直接调用它的话,无论如何是没有任何反映的,必须要手动,点一下右上角分享给好友按钮,待弹出一次通讯录之后,返回来在直接使用,就没有任何问题,似乎内部初始化什么东西一样。所以建议直接嵌入到上面那个 绑定方法中。ZCyHTML5中文学习网 - HTML5先行者学习网

如下:ZCyHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
ZCyHTML5中文学习网 - HTML5先行者学习网
function sendMessage(){ZCyHTML5中文学习网 - HTML5先行者学习网
    WeixinJSBridge.on('menu:share:appmessage', function(argv){ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
        WeixinJSBridge.invoke('sendAppMessage',{ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
    "appid":"",                                              //appid 设置空就好了。ZCyHTML5中文学习网 - HTML5先行者学习网
    "img_url":  imgUrl,                                   //分享时所带的图片路径ZCyHTML5中文学习网 - HTML5先行者学习网
    "img_width": "120",                            //图片宽度ZCyHTML5中文学习网 - HTML5先行者学习网
    "img_height": "120",                            //图片高度ZCyHTML5中文学习网 - HTML5先行者学习网
    "link":url,                                               //分享附带链接地址ZCyHTML5中文学习网 - HTML5先行者学习网
    "desc":"我是一个介绍",                            //分享内容介绍ZCyHTML5中文学习网 - HTML5先行者学习网
    "title":"标题,再简单不过了。"ZCyHTML5中文学习网 - HTML5先行者学习网
   }, function(res){/*** 回调函数,最好设置为空 ***/ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
    });ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
   });ZCyHTML5中文学习网 - HTML5先行者学习网
}ZCyHTML5中文学习网 - HTML5先行者学习网
ZCyHTML5中文学习网 - HTML5先行者学习网

ZCyHTML5中文学习网 - HTML5先行者学习网
这样,你在点击发送给好友按钮,就可以直接弹出通讯录选择 ‘单个' 好友进行分享。ZCyHTML5中文学习网 - HTML5先行者学习网

同理,分享到朋友圈也是调用 invoke 私有函数,只是按钮绑定名称不同而已。ZCyHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
ZCyHTML5中文学习网 - HTML5先行者学习网
function sendMessage(){ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
 ......//此处省略发送给好友代码ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
   WeixinJSBridge.on('menu:share:timeline', function(argv){ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
      WeixinJSBridge.invoke('shareTimeline',{ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
    "appid":"",                                              //appid 设置空就好了。ZCyHTML5中文学习网 - HTML5先行者学习网
    "img_url":  imgUrl,                                   //分享时所带的图片路径ZCyHTML5中文学习网 - HTML5先行者学习网
    "img_width": "120",                            //图片宽度ZCyHTML5中文学习网 - HTML5先行者学习网
    "img_height": "120",                            //图片高度ZCyHTML5中文学习网 - HTML5先行者学习网
    "link":url,                                               //分享附带链接地址ZCyHTML5中文学习网 - HTML5先行者学习网
    "desc":"我是一个介绍",                            //分享内容介绍ZCyHTML5中文学习网 - HTML5先行者学习网
    "title":"标题,再简单不过了。"ZCyHTML5中文学习网 - HTML5先行者学习网
   }, function(res){/*** 回调函数,最好设置为空 ***/});ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
 });   ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
  });ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
} ZCyHTML5中文学习网 - HTML5先行者学习网
ZCyHTML5中文学习网 - HTML5先行者学习网

注意,on绑定的是 “menu:share:timeline” 不是 "menu:share:appmessage"。invoke里面也是。ZCyHTML5中文学习网 - HTML5先行者学习网

还一个微博分享,我没试过,不知道有没有用,想玩的试试,一切分享都是调用当前微信帐号分享。ZCyHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
ZCyHTML5中文学习网 - HTML5先行者学习网
WeixinJSBridge.on('menu:share:weibo', function(argv){ZCyHTML5中文学习网 - HTML5先行者学习网
   WeixinJSBridge.invoke('shareWeibo',{ZCyHTML5中文学习网 - HTML5先行者学习网
   "content":dataForWeixin.title+' '+dataForWeixin.url,ZCyHTML5中文学习网 - HTML5先行者学习网
   "url":dataForWeixin.urlZCyHTML5中文学习网 - HTML5先行者学习网
   }, function(res){});ZCyHTML5中文学习网 - HTML5先行者学习网
});ZCyHTML5中文学习网 - HTML5先行者学习网
ZCyHTML5中文学习网 - HTML5先行者学习网

ZCyHTML5中文学习网 - HTML5先行者学习网
如果微信浏览器内部尚未初始化,所有的接口都会是undefined。为了避免进去马上就调用出错,获取微信初始化完成响应事件,初始化完成调用sendMessage进行绑定。ZCyHTML5中文学习网 - HTML5先行者学习网

如下:ZCyHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
ZCyHTML5中文学习网 - HTML5先行者学习网
if(document.addEventListener){ZCyHTML5中文学习网 - HTML5先行者学习网
 document.addEventListener('WeixinJSBridgeReady', sendMessage, false);  }else if(document.attachEvent){ZCyHTML5中文学习网 - HTML5先行者学习网
 document.attachEvent('WeixinJSBridgeReady'   , sendMessage); document.attachEvent('onWeixinJSBridgeReady' , sendMessage);  }ZCyHTML5中文学习网 - HTML5先行者学习网
ZCyHTML5中文学习网 - HTML5先行者学习网
下面还有几个小功能:ZCyHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
ZCyHTML5中文学习网 - HTML5先行者学习网
WeixinJSBridge.call('hideToolbar');                        //隐藏右下面工具栏ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
WeixinJSBridge.call('showToolbar'); //显示右下面工具栏ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
WeixinJSBridge.call('hideOptionMenu');                //隐藏右上角三个点按钮。ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
WeixinJSBridge.call('showOptionMenu');              //显示右上角三个点按钮。ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
ZCyHTML5中文学习网 - HTML5先行者学习网

ZCyHTML5中文学习网 - HTML5先行者学习网
我是一个菜鸟,写完了,写的不好,请大家多多包含!ZCyHTML5中文学习网 - HTML5先行者学习网

ZCyHTML5中文学习网 - HTML5先行者学习网
完整测试代码(用微信打开):ZCyHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
ZCyHTML5中文学习网 - HTML5先行者学习网

<!docType html>ZCyHTML5中文学习网 - HTML5先行者学习网
<html>ZCyHTML5中文学习网 - HTML5先行者学习网
<head>ZCyHTML5中文学习网 - HTML5先行者学习网

 <meta http-equiv="content-type" content="text/html; charset=utf-8">ZCyHTML5中文学习网 - HTML5先行者学习网
 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />ZCyHTML5中文学习网 - HTML5先行者学习网

<title>微信接口测试</title>ZCyHTML5中文学习网 - HTML5先行者学习网

<script>ZCyHTML5中文学习网 - HTML5先行者学习网
 function sendMessage(){ZCyHTML5中文学习网 - HTML5先行者学习网
  WeixinJSBridge.on('menu:share:appmessage', function(argv){ZCyHTML5中文学习网 - HTML5先行者学习网
   WeixinJSBridge.invoke('sendAppMessage',{ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
   "appid":"",          //appid 设置空就好了。ZCyHTML5中文学习网 - HTML5先行者学习网
   "img_url":"",         //分享时所带的图片路径ZCyHTML5中文学习网 - HTML5先行者学习网
   "img_width":"120",         //图片宽度ZCyHTML5中文学习网 - HTML5先行者学习网
   "img_height":"120",        //图片高度ZCyHTML5中文学习网 - HTML5先行者学习网
   "link":"http://www.jb51.net",      //分享附带链接地址ZCyHTML5中文学习网 - HTML5先行者学习网
   "desc":"极客标签--http://www.jb51.net",    //分享内容介绍ZCyHTML5中文学习网 - HTML5先行者学习网
   "title":"发现 极客标签 - 做最棒的极客知识分享平台"ZCyHTML5中文学习网 - HTML5先行者学习网
   }, function(res){/*** 回调函数,最好设置为空 ***/ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
   });ZCyHTML5中文学习网 - HTML5先行者学习网
  });ZCyHTML5中文学习网 - HTML5先行者学习网
  ZCyHTML5中文学习网 - HTML5先行者学习网
  WeixinJSBridge.on('menu:share:timeline', function(argv){ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
   WeixinJSBridge.invoke('shareTimeline',{ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
   "appid":"",          //appid 设置空就好了。ZCyHTML5中文学习网 - HTML5先行者学习网
   "img_url":"",         //分享时所带的图片路径ZCyHTML5中文学习网 - HTML5先行者学习网
   "img_width":"120",         //图片宽度ZCyHTML5中文学习网 - HTML5先行者学习网
   "img_height":"120",        //图片高度ZCyHTML5中文学习网 - HTML5先行者学习网
   "link":"http://www.jb51.net",      //分享附带链接地址ZCyHTML5中文学习网 - HTML5先行者学习网
   "desc":"极客标签--http://www.jb51.net",    //分享内容介绍ZCyHTML5中文学习网 - HTML5先行者学习网
   "title":"发现 极客标签 - 做最棒的极客知识分享平台"ZCyHTML5中文学习网 - HTML5先行者学习网
   }, function(res){/*** 回调函数,最好设置为空 ***/ZCyHTML5中文学习网 - HTML5先行者学习网
   });ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
  });ZCyHTML5中文学习网 - HTML5先行者学习网

  ZCyHTML5中文学习网 - HTML5先行者学习网
  alert("调用成功!现在可以通过右上角按钮分享给朋友或者朋友圈!");ZCyHTML5中文学习网 - HTML5先行者学习网
  ZCyHTML5中文学习网 - HTML5先行者学习网
 }ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
 function hideMenu(){ZCyHTML5中文学习网 - HTML5先行者学习网
  WeixinJSBridge.call('hideOptionMenu');ZCyHTML5中文学习网 - HTML5先行者学习网
 }ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
 function showMenu(){ZCyHTML5中文学习网 - HTML5先行者学习网
  WeixinJSBridge.call('showOptionMenu');  ZCyHTML5中文学习网 - HTML5先行者学习网
 }ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
 function hideTool(){ZCyHTML5中文学习网 - HTML5先行者学习网
  WeixinJSBridge.call('hideToolbar');ZCyHTML5中文学习网 - HTML5先行者学习网
 }ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
 function showTool(){ZCyHTML5中文学习网 - HTML5先行者学习网
  WeixinJSBridge.call('showToolbar');ZCyHTML5中文学习网 - HTML5先行者学习网
 }ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网

 if(document.addEventListener){ZCyHTML5中文学习网 - HTML5先行者学习网
  document.addEventListener('WeixinJSBridgeReady', sendMessage, false); ZCyHTML5中文学习网 - HTML5先行者学习网
 }else if(document.attachEvent){ZCyHTML5中文学习网 - HTML5先行者学习网
  document.attachEvent('WeixinJSBridgeReady' , sendMessage); ZCyHTML5中文学习网 - HTML5先行者学习网
  document.attachEvent('onWeixinJSBridgeReady' , sendMessage); ZCyHTML5中文学习网 - HTML5先行者学习网
 }ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网
 //判断网页是否在微信中被调用ZCyHTML5中文学习网 - HTML5先行者学习网
 var ua = navigator.userAgent.toLowerCase();ZCyHTML5中文学习网 - HTML5先行者学习网
 if(ua.match(/MicroMessenger/i)=="micromessenger") {ZCyHTML5中文学习网 - HTML5先行者学习网
  } else {ZCyHTML5中文学习网 - HTML5先行者学习网
  alert("调用失败,请用微信扫一扫,扫描下面二维码打开网页!");ZCyHTML5中文学习网 - HTML5先行者学习网
 }ZCyHTML5中文学习网 - HTML5先行者学习网
 ZCyHTML5中文学习网 - HTML5先行者学习网

</script>ZCyHTML5中文学习网 - HTML5先行者学习网

</head>ZCyHTML5中文学习网 - HTML5先行者学习网

<body>ZCyHTML5中文学习网 - HTML5先行者学习网
 <center>ZCyHTML5中文学习网 - HTML5先行者学习网
 <h2>分享请点击右上角</h2>ZCyHTML5中文学习网 - HTML5先行者学习网
 <button onclick="hideMenu()" style="width:100px;height:100px;font-size:16px;">隐藏右上角三个点</button> <br /><br />ZCyHTML5中文学习网 - HTML5先行者学习网
 <button onclick="showMenu()" style="width:100px;height:100px;font-size:16px;">显示右上角三个点</button> <br /><br />ZCyHTML5中文学习网 - HTML5先行者学习网
 <button onclick="hideTool()" style="width:100px;height:100px;font-size:16px;">隐藏下面导条</button>   <br /><br />ZCyHTML5中文学习网 - HTML5先行者学习网
 <button onclick="showTool()" style="width:100px;height:100px;font-size:16px;">显示下面导条</button>    <br /><br />ZCyHTML5中文学习网 - HTML5先行者学习网
 </center>ZCyHTML5中文学习网 - HTML5先行者学习网
</body>ZCyHTML5中文学习网 - HTML5先行者学习网

</html>ZCyHTML5中文学习网 - HTML5先行者学习网

ZCyHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助