使用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 相关文章推荐
JQuery UI皮肤定制
Jul 27 Javascript
JavaScript 组件之旅(四):测试 JavaScript 组件
Oct 28 Javascript
javascript 模式设计之工厂模式详细说明
May 10 Javascript
Prototype的Class.create函数解析
Sep 22 Javascript
wap图片滚动特效无css3元素纯js脚本编写
Aug 22 Javascript
微信小程序 地图map详解及简单实例
Jan 10 Javascript
angularjs ocLazyLoad分步加载js文件实例
Jan 17 Javascript
微信小程序图片横向左右滑动案例
May 19 Javascript
Angularjs 实现动态添加控件功能
May 25 Javascript
利用JavaScript的%做隔行换色的实例
Nov 25 Javascript
原生JS实现简单的倒计时功能示例
Aug 30 Javascript
微信小程序实现文件预览
Oct 22 Javascript
使用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
Syphon 使用方法
2021/03/03 冲泡冲煮
PHP网站提速三大“软”招
2006/10/09 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
2014/11/19 PHP
PHP大文件分割上传 PHP分片上传
2017/08/28 PHP
php获得刚插入数据的id 的几种方法总结
2018/05/31 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
发现的以前不知道的函数
2006/09/19 Javascript
javascript Zifa FormValid 0.1表单验证 代码打包下载
2007/06/08 Javascript
给Javascript数组插入一条记录的代码
2007/08/30 Javascript
遍历jquery对象的代码分享
2011/11/02 Javascript
利用javascript解决图片缩放及其优化的代码
2012/05/23 Javascript
利用进制转换压缩数字函数分享
2014/01/02 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
浅谈JS运算符&amp;&amp;和|| 及其优先级
2016/08/10 Javascript
javascript this详细介绍
2016/09/19 Javascript
js实现简单的网页换肤效果
2017/01/18 Javascript
不到200行 JavaScript 代码实现富文本编辑器的方法
2018/01/03 Javascript
浅析Vue 生命周期
2018/06/21 Javascript
vue 下列表侧滑操作实例代码详解
2018/07/24 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
详解Python中最难理解的点-装饰器
2017/04/03 Python
python编程使用selenium模拟登陆淘宝实例代码
2018/01/25 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
2018/06/13 Python
python调用摄像头显示图像的实例
2018/08/03 Python
强悍的Python读取大文件的解决方案
2019/02/16 Python
python实现邮件发送功能
2019/08/10 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
Camille Jewelry官网:现代女性时尚首饰
2019/07/07 全球购物
大学生创业计划书
2014/08/14 职场文书
go语言中GOPATH GOROOT的作用和设置方式
2021/05/05 Golang
Golang的继承模拟实例
2021/06/30 Golang
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js