使用jQuery.wechat构建微信WEB应用


Posted in Javascript onOctober 09, 2014

因为最近自己的产品要在微信公众号中推广,需要提供一些有意义的功能,于是被迫走上了支持微信这条不归路。

众所周知,腾讯是那样一个神奇的公司,他们的产品在商业上获得巨大成功,但文档真的很难令人恭维,诺大一个公众号开发平台,我竟然找不到真正的,关于web开发的官方文档,有的就是个别示例,剩下的...呵呵,有一个叫开发者交流互助的东东。

使用jQuery.wechat构建微信WEB应用

看完上面这个图后,有没有这样的感觉,一帮群众拼命的想知道发生了什么,但就是没有官方声明!o(∩_∩)o 哈哈

说了这么多,赶紧入正题,本期要讲的就是我痛苦中挣扎徘徊后写的jQuery.wechat,一个提供了统一API的、基于jQuery.promise的jQuery.plugin。希望能多少帮助到大家。

首先,安装那是相当的简单

bower install --save jquery-wechat

 如果不用bower的,自己从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之类的延迟加载技术,想必你也是个行家,不用我再教你怎么配置了吧?
 
使用——简单、轻松、统一、爽!

启用jQuery.wechat功能
$.wechat.enable(); //So easy!

 因为整个插件是基于jQuery.promise的,所以你也可以给它一个链:

$.wechat.enable().done(function(){

    alert('已经启用成功');

}).fail(function(){

    alert('启用失败');

});

 考虑到目前单页技术(SPA)的广泛应用,工具类的设计必须考虑启用/停用机制,否则可能引起未知错误。
 
隐藏/显示菜单

$.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);                                         //分享后的回调函数,常见的有成功和取消

    }

});

 具体参考如下截图:

使用jQuery.wechat构建微信WEB应用

该分享格式变更会影响发送给朋友、分享到朋友圈、分享到微博、发送邮件四项功能。当设置后,再点击右上角菜单键打开菜单后,选择前述四项中的任意一项,就能看到更改后的效果
 
关闭当前页

$.wechat.closeWindow();

 停用jQuery.wechat机制

$.wechat.destroy();

 停用后,所有功能自动重置回初始状态
 该功能在单页应用(SPA)中比较常用

Javascript 相关文章推荐
?牟┛途W扣了一??效果出?? target=
May 27 Javascript
javascript 对象比较实现代码
Apr 27 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
Mar 24 Javascript
Bootstrap入门书籍之(三)栅格系统
Feb 17 Javascript
AngularJS 让人爱不释手的八种功能
Mar 23 Javascript
AngularJS入门教程之AngularJS模型
Apr 18 Javascript
js实现移动端微信页面禁止字体放大
Feb 16 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
Jun 04 Javascript
js+SVG实现动态时钟效果
Jul 14 Javascript
基于vue-router 多级路由redirect 重定向的问题
Sep 03 Javascript
简单了解小程序+node梳理登陆流程
Jun 24 Javascript
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 Vue.js
使用jQuery将多条数据插入模态框的实现代码
Oct 08 #Javascript
get(0).tagName获得作用标签示例代码
Oct 08 #Javascript
一个css与js结合的下拉菜单支持主流浏览器
Oct 08 #Javascript
Javascript获取当前日期的农历日期代码
Oct 08 #Javascript
javascript中通过arguments参数伪装方法重载
Oct 08 #Javascript
利用原生JavaScript获取元素样式只是获取而已
Oct 08 #Javascript
javascript学习笔记(八)正则表达式
Oct 08 #Javascript
You might like
PHP执行速率优化技巧小结
2008/03/15 PHP
实现获取http内容的php函数分享
2014/02/16 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
PHP实现查询手机归属地的方法详解
2017/04/28 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
如何通过PHP实现Des加密算法代码实例
2020/05/09 PHP
如何实现iframe(嵌入式帧)的自适应高度
2006/07/26 Javascript
jquery1.4 教程二 ajax方法的改进
2010/02/25 Javascript
JavaScript 构造函数 面相对象学习必备知识
2010/06/09 Javascript
百度地图API之本地搜索与范围搜索
2015/07/30 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
JS实现二维数组元素的排列组合运算简单示例
2019/01/28 Javascript
详解写好JS条件语句的5条守则
2019/02/28 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
node静态服务器实现静态读取文件或文件夹
2019/12/03 Javascript
Vue实现PC端靠边悬浮球的代码
2020/05/09 Javascript
[49:15]DOTA2-DPC中国联赛 正赛 CDEC vs XG BO3 第二场 1月19日
2021/03/11 DOTA
使用Python发送邮件附件以定时备份MySQL的教程
2015/04/25 Python
python开发之thread实现布朗运动的方法
2015/11/11 Python
程序员写Python时的5个坏习惯,你有几条?
2018/11/26 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
2020/01/02 Python
Python3.9 beta2版本发布了,看看这7个新的PEP都是什么
2020/06/10 Python
Python实现Appium端口检测与释放的实现
2020/12/31 Python
德国传统玻璃制造商:Cristalica
2018/04/23 全球购物
Crabtree & Evelyn英国官网:瑰珀翠护手霜、香水、沐浴和身体护理
2018/04/26 全球购物
机械工程系毕业生求职信
2013/09/27 职场文书
焊接专业毕业生求职信
2013/10/01 职场文书
《赵州桥》教学反思
2014/02/17 职场文书
标准离婚协议书范文下载
2014/11/30 职场文书
学生上课迟到检讨书
2015/01/01 职场文书
2015幼儿园新学期寄语
2015/02/27 职场文书
春节随笔
2015/08/15 职场文书
高中班主任寄语
2019/06/21 职场文书
MySQL定时备份数据库(全库备份)的实现
2021/09/25 MySQL
Golang 遍历二叉树
2022/04/19 Golang