微信程序开发之-WeixinJSBridge调用
微信的WeixinJSBridge还是很厉害的,虽然官方文档只公布了3个功能,但是还内置的很多功能没公布,但是存在。今天就好好和大家聊聊
功能1------发送给好友
代码如下:
1 2 3 4 5 | function sendMessage(){ WeixinJSBridge.on( 'menu:share:appmessage' , function(argv){ alert( "发送给好友" ); }); } |
这样,只要在某处调用 sendMessage 函数就可以改变发送好友的按钮响应了,再点击,便会弹出“发送给好友字符串”
功能2-----分享
1 2 3 4 5 6 7 8 9 | WeixinJSBridge.invoke( 'sendAppMessage' ,{ "appid" : "" , //appid 设置空就好了。 "img_url" : imgUrl, //分享时所带的图片路径 "img_width" : "120" , //图片宽度 "img_height" : "120" , //图片高度 "link" :url, //分享附带链接地址 "desc" : "我是一个介绍" , //分享内容介绍 "title" : "标题,再简单不过了。" }, function(res){ /*** 回调函数,最好设置为空 ***/ }); |
注意,如果将这个微信私有函数单独拿出来调用,道理上是讲的通,但是!第一次打开页面直接调用它的话,无论如何是没有任何反映的,必须要手动,点一下右上角分享给好友按钮,待弹出一次通讯录之后,返回来在直接使用,就没有任何问题,似乎内部初始化什么东西一样。所以建议直接嵌入到上面那个 绑定方法中。
如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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 私有函数,只是按钮绑定名称不同而已。
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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里面也是。
还一个微博分享,我没试过,不知道有没有用,想玩的试试,一切分享都是调用当前微信帐号分享。
代码如下:
1 2 3 4 5 6 7 | WeixinJSBridge.on( 'menu:share:weibo' , function(argv){ WeixinJSBridge.invoke( 'shareWeibo' ,{ "content" :dataForWeixin.title+ ' ' +dataForWeixin.url, "url" :dataForWeixin.url }, function(res){}); }); |
如果微信浏览器内部尚未初始化,所有的接口都会是undefined。为了避免进去马上就调用出错,获取微信初始化完成响应事件,初始化完成调用sendMessage进行绑定。
功能3---------隐藏-关闭浏览器
1 2 3 4 5 6 7 8 9 | WeixinJSBridge.call( 'hideToolbar' ); //隐藏右下面工具栏 WeixinJSBridge.call( 'showToolbar' ); //显示右下面工具栏 WeixinJSBridge.call( 'hideOptionMenu' ); //隐藏右上角三个点按钮。 WeixinJSBridge.call( 'showOptionMenu' ); //显示右上角三个点按钮。 WeixinJSBridge.call( 'closeWindow' ); //关闭当前窗口 |
千行代码,Bug何处藏。 纵使上线又怎样,朝令改,夕断肠。
分类:
前端知识
标签:
WeixinJSBridge调用
, 微信程序开发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现