由于最近本身的产品要在微信公众号中推广,须要提供一些有意义
的功能,因而被迫走上了支持微信这条不归路。javascript
众所周知,腾讯是那样一个神奇的公司,他们的产品在商业上得到巨大成功,但文档真的很难使人恭维,诺大一个公众号开发平台,我居然找不到真正的,关于web开发的
官方文档,有的就是个别示例,剩下的...呵呵,有一个叫开发者交流互助
的东东。java
看完上面这个图后,有没有这样的感受,一帮群众拼命的想知道发生了什么,但就是没有官方声明!o(∩_∩)o 哈哈jquery
说了这么多,赶忙入正题,本期要讲的就是我痛苦中挣扎徘徊后写的jQuery.wechat,一个提供了统一API的、基于jQuery.promise的jQuery.plugin。但愿能多少帮助到你们。git
bower install --save jquery-wechat
若是不用bower的,本身从Github上下载、解压,那也是同样同样滴!github
<script type="text/javascript" src="bower_components/jquery/dist/jquery.min.js"></script> <script type="text/javascript" src="bower_components/jquery-wechat/dist/jquery-wechat.min.js"></script>
你若是用了
amd
,cmd
之类的延迟加载技术,想必你也是个行家,不用我再教你怎么配置了吧?web
jQuery.wechat
功能$.wechat.enable(); //So easy!
由于整个插件是基于jQuery.promise的,因此你也能够给它一个链:api
$.wechat.enable().done(function(){ alert('已经启用成功'); }).fail(function(){ alert('启用失败'); });
考虑到目前单页技术(SPA)的普遍应用,工具类的设计必须考虑
启用/停用
机制,不然可能引发未知错误。promise
$.wechat.hideMenu(); //隐藏菜单 $.wechat.showMenu(); //显示菜单
启用
jQuery.wechat
以后,就能够随意调用如hideMenu
之类的方法了,无需将其余方法写入enable
的done
回调之中。jQuery.wechat
的实现原理是,若是jQuery.wechat
尚未启用成功,全部操做会进入排队,一旦启用成功后,则顺序执行;若是启用失败,则永远不会执行。微信
$.wechat.hideToolbar(); //隐藏底部工具栏 $.wechat.showToolbar(); //显示底部工具栏
$.wechat.scanQRcode();
$.wechat.preview({ current: 'http://xxx/img/pic001.jpg', //进入预览模式后,直接显示这张图片 urls: [ 'http://xxx/img/pic001.jpg', 'http://xxx/img/pic002.jpg', 'http://xxx/img/pic003.jpg', 'http://xxx/img/pic004.jpg', 'http://xxx/img/pic005.jpg', 'http://xxx/img/pic006.jpg' ] //全部要在预览模式下显示的图片 });
$.wechat.getNetworkType().done(function(response) { $('#network').text(response.split(':')[1]); });
response
格式以下:网络
network_type:wifi wifi网络 network_type:edge 非wifi,包含3G/2G network_type:fail 网络断开链接 network_type:wwan (2g或者3g)
每次看到别人的app分享出来的消息都带着精美的缩略图、适当的标题和描述,更有甚者消息下面还跟了一行小字指出该消息是由谁
发送出来的;再看看你本身分享出去的消息,一个蓝色的默认空白图片,配着不搭调的标题,会不会奇怪是什么逻辑把他们塞进去的?
还好,我们如今就来解决这个问题:
$.wechat.setShareOption({ appid: 'xxxx', //小标appid img_width: '60', img_height: '60', img_url: window.location.toString() + 'img/demo.jpg', //缩略图 title: 'DEMO', //标题 desc: 'The description is set from $.wechat.setShareOption', //描述 link: function() { return window.location.toString(); //消息分享出去后,用户点击消息打开的连接地址 }, callback: function(response) { alert(response); //分享后的回调函数,常见的有成功和取消 } });
具体参考以下截图:
该分享格式变动会影响
发送给朋友
、分享到朋友圈
、分享到微博
、发送邮件
四项功能。当设置后,再点击右上角菜单键打开菜单后,选择前述四项中的任意一项,就能看到更改后的效果
$.wechat.closeWindow();
jQuery.wechat
机制$.wechat.destroy();
停用后,全部功能自动重置回初始状态
该功能在单页应用(SPA)中比较经常使用
更多详情,参考Github-Source
若要试用,请微信中打开jQuery.wechat-DEMO
若有问题, 大胆注册issue