微信内置浏览器私有接口WeixinJSBridge介绍


Posted in Javascript onMay 25, 2015

微信内置浏览器私有接口WeixinJSBridge介绍

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

注意:(WeixinJSBridge只能在微信内打开的网页有效)

按钮一之------发送给好友

function sendMessage(){

 

 WeixinJSBridge.on('menu:share:appmessage', function(argv){ alert("发送给好友"); });

 

}

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

分享函数

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进行绑定。

如下:

if(document.addEventListener){

 document.addEventListener('WeixinJSBridgeReady', sendMessage, false);  }else if(document.attachEvent){

 document.attachEvent('WeixinJSBridgeReady'   , sendMessage); document.attachEvent('onWeixinJSBridgeReady' , sendMessage);  }

下面还有几个小功能:
WeixinJSBridge.call('hideToolbar');                        //隐藏右下面工具栏

 

WeixinJSBridge.call('showToolbar'); //显示右下面工具栏

 

WeixinJSBridge.call('hideOptionMenu');                //隐藏右上角三个点按钮。

 

WeixinJSBridge.call('showOptionMenu');              //显示右上角三个点按钮。

 

我是一个菜鸟,写完了,写的不好,请大家多多包含!

完整测试代码(用微信打开):

<!docType html>

<html>

<head>
 <meta http-equiv="content-type" content="text/html; charset=utf-8">

 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" />
<title>微信接口测试</title>
<script>

 function sendMessage(){

  WeixinJSBridge.on('menu:share:appmessage', function(argv){

   WeixinJSBridge.invoke('sendAppMessage',{

 

   "appid":"",          //appid 设置空就好了。

   "img_url":"",         //分享时所带的图片路径

   "img_width":"120",         //图片宽度

   "img_height":"120",        //图片高度

   "link":"https://3water.com",      //分享附带链接地址

   "desc":"极客标签--https://3water.com",    //分享内容介绍

   "title":"发现 极客标签 - 做最棒的极客知识分享平台"

   }, function(res){/*** 回调函数,最好设置为空 ***/

 

   });

  });

  

  WeixinJSBridge.on('menu:share:timeline', function(argv){

 

   WeixinJSBridge.invoke('shareTimeline',{

 

   "appid":"",          //appid 设置空就好了。

   "img_url":"",         //分享时所带的图片路径

   "img_width":"120",         //图片宽度

   "img_height":"120",        //图片高度

   "link":"https://3water.com",      //分享附带链接地址

   "desc":"极客标签--https://3water.com",    //分享内容介绍

   "title":"发现 极客标签 - 做最棒的极客知识分享平台"

   }, function(res){/*** 回调函数,最好设置为空 ***/

   });

 

  });
  

  alert("调用成功!现在可以通过右上角按钮分享给朋友或者朋友圈!");

  

 }

 

 function hideMenu(){

  WeixinJSBridge.call('hideOptionMenu');

 }

 

 function showMenu(){

  WeixinJSBridge.call('showOptionMenu');  

 }

 

 function hideTool(){

  WeixinJSBridge.call('hideToolbar');

 }

 

 function showTool(){

  WeixinJSBridge.call('showToolbar');

 }

 
 if(document.addEventListener){

  document.addEventListener('WeixinJSBridgeReady', sendMessage, false); 

 }else if(document.attachEvent){

  document.attachEvent('WeixinJSBridgeReady' , sendMessage); 

  document.attachEvent('onWeixinJSBridgeReady' , sendMessage); 

 }

 

 //判断网页是否在微信中被调用

 var ua = navigator.userAgent.toLowerCase();

 if(ua.match(/MicroMessenger/i)=="micromessenger") {

  } else {

  alert("调用失败,请用微信扫一扫,扫描下面二维码打开网页!");

 }

 
</script>
</head>
<body>

 <center>

 <h2>分享请点击右上角</h2>

 <button onclick="hideMenu()" style="width:100px;height:100px;font-size:16px;">隐藏右上角三个点</button> <br /><br />

 <button onclick="showMenu()" style="width:100px;height:100px;font-size:16px;">显示右上角三个点</button> <br /><br />

 <button onclick="hideTool()" style="width:100px;height:100px;font-size:16px;">隐藏下面导条</button>   <br /><br />

 <button onclick="showTool()" style="width:100px;height:100px;font-size:16px;">显示下面导条</button>    <br /><br />

 </center>

</body>
</html>
Javascript 相关文章推荐
创建公共调用 jQuery Ajax 带返回值
Aug 01 Javascript
javascript 手动给表增加数据的小例子
Jul 10 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
Dec 16 Javascript
详解Javascript函数声明与递归调用
Oct 22 Javascript
微信小程序 购物车简单实例
Oct 24 Javascript
用iframe实现不刷新整个页面上传图片的实例
Nov 18 Javascript
JS根据生日月份和日期计算星座的简单实现方法
Nov 24 Javascript
vue-router+vuex addRoutes实现路由动态加载及菜单动态加载
Sep 28 Javascript
关于jQuery里prev()的简单操作代码
Oct 27 jQuery
jQuery访问json文件中数据的方法示例
Jan 28 jQuery
layui当点击文本框时弹出选择框,显示选择内容的例子
Sep 02 Javascript
vue动态绑定style样式
Apr 20 Vue.js
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
May 25 #Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
May 25 #Javascript
jQuery实现表格行上移下移和置顶的方法
May 22 #Javascript
jquery控制表单输入框显示默认值的方法
May 22 #Javascript
jQuery实现自动滚动到页面顶端的方法
May 22 #Javascript
JavaScript检测鼠标移动方向的方法
May 22 #Javascript
jQuery实现强制cookie过期方法汇总
May 22 #Javascript
You might like
phpMyAdmin 安装及问题总结
2009/05/28 PHP
php写的简易聊天室代码
2011/06/04 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
PHP反射机制用法实例
2014/08/28 PHP
javascript cookies操作集合
2010/04/12 Javascript
QUnit jQuery的TDD框架
2010/11/04 Javascript
一些javascript一些题目的解析
2010/12/25 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
Jquery实现textarea根据文本内容自适应高度
2015/04/03 Javascript
Angular Js文件上传之form-data
2015/08/28 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
jquery 动态增加删除行的简单实例(推荐)
2016/10/12 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
2017/06/19 Javascript
node.js中http模块和url模块的简单介绍
2017/10/06 Javascript
element UI upload组件上传附件格式限制方法
2018/09/04 Javascript
详解element-ui中form验证杂记
2019/03/04 Javascript
微信小程序使用websocket通讯的demo,含前后端代码,亲测可用
2019/05/22 Javascript
js实现一个简易计算器
2020/03/30 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
[01:00:14]DOTA2官方TI8总决赛纪录片 真视界True Sight
2019/01/16 DOTA
[03:08]迎霜节狂欢!2018年迎霜节珍藏Ⅰ一览
2018/12/25 DOTA
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
Python version 2.7 required, which was not found in the registry
2014/08/26 Python
django 开发忘记密码通过邮箱找回功能示例
2018/04/17 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
Python分析最近大火的网剧《隐秘的角落》
2020/07/02 Python
pandas针对excel处理的实现
2021/01/15 Python
买房子个人收入证明
2014/01/16 职场文书
财务会计毕业生个人求职信
2014/02/03 职场文书
园林系毕业生求职信
2014/06/23 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
市场督导岗位职责
2015/04/10 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
2019脱贫攻坚工作总结报告范本!
2019/08/06 职场文书
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
2021/03/30 HTML / CSS
MySQL中order by的使用详情
2021/11/17 MySQL